通过MyCouch获取数据库名称更改

时间:2018-04-29 13:20:39

标签: c# .net-core couchdb mycouch

我需要在我的应用中使用数据库名称及其更改。

这是我的代码:

var cancellation = new CancellationTokenSource().Token;

var cnInfo = MyCouch.DbConnectionInfo(serverUrl, "_all_dbs");

cnInfo.BasicAuth = authString;

cnInfo.Timeout = TimeSpan.FromMilliseconds(System.Threading.Timeout.Infinite);

var db = new MyCouch.MyCouchClient(cnInfo);
var changes = db.Changes.ObserveContinuous(MyCouch.Requests.GetChangesRequest
               (
                   Feed = MyCouch.ChangesFeed.Continuous,
                   Since = "0",
                   Heartbeat = 999999999, 
                   IncludeDocs = true,
                   Style = MyCouch.ChangesStyle.MainOnly
               ), cancellation).Take(1).Wait();

几分钟后的第一次尝试会返回数据库名称,但会在下次尝试时阻止。 我可以通过getting http://localhost:5984/_all_dbs获取数据库名称。

我很确定服务器上有一些数据库。

更新 订阅更改有效:

db.Changes.ObserveContinuous(MyCouch.Requests.GetChangesRequest
               (
                   Feed = MyCouch.ChangesFeed.Continuous,
                   Since = "0",
                   Heartbeat = 999999999, 
                   IncludeDocs = true,
                   Style = MyCouch.ChangesStyle.MainOnly
               ), cancellation).Subscribe(print); //=> the print works.

主要问题似乎是.Take(1).Wait()。我希望.Take(1)向{oborable}添加.OnCompleted(),但它似乎并不存在。有什么建议吗?

0 个答案:

没有答案