Получите изменения имени базы данных 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)
добавить .OnCompleted()
к наблюдаемому, но, похоже, нет. Какие-либо предложения?