CouchDB longpoll без _changes - PullRequest
       6

CouchDB longpoll без _changes

0 голосов
/ 04 декабря 2018

Я хочу использовать опцию longpoll в couchDB, но без представления _changes.База данных имеет следующий вид:

function (doc) {
  if(doc.job)
    emit(doc._id, 1);
}

Таким образом, она генерирует все документы, в которых есть тег «работа».Обратите внимание, что у меня есть куча других вещей в этой БД.Теперь я хочу использовать longpoll, где соединение остается открытым, пока в БД нет документов с тегом job.Как только есть документ с тегом job, БД отправляет его клиенту, и соединение должно быть закрыто.Теперь клиент может выполнить задание, отправить команду удаления в базу данных, чтобы удалить задание, и снова начать прослушивание.Поэтому моя идея заключается в том, чтобы вызвать представление как-то так:

http://mycouch/mydb/_design/visualize/_view/get_jobs?feed=longpoll&include_docs=true

Однако кажется, что возможно использовать longpoll только с представлением _changes.Любое решение?

Спасибо за любую помощь

1 Ответ

0 голосов
/ 05 декабря 2018

_changes - это фид, который вам нужно использовать в вашем случае.Йо может использовать его для фильтрации каналов, получая изменения только для документов с тегами «работа».Вы можете сделать это с помощью функции просмотра карты.

http://mycouch/_changes?filter=_view&view=visualize/get_jobs&feed=logpoll&include_docs=true

Вы будете получать с помощью этого канала любое обновление (создание / обновление / удаление) по документам с тегами "job" в вашей базе данных.,

...