2016-12-08 10 views
0

Я создаю приложение nodeJS. Я использую очередь сообщений redis. Но чтобы получить новое сообщение, нажатое в очередь, я должен вызвать метод rsmq.receiveMessage. Я хочу, чтобы это быть автоматическим, как, когда новое сообщение выталкивается REDIS очереди сообщений Я хочу rsmq.receiveMessage вызван автоматически на основе т.е. событиеRedis Message Queue - Автоматическое получение сообщения в приложении NodeJS

https://github.com/smrchy/rsmq

+0

я нашел модуль Redis узла-клиент может сделать это http://redis.js.org/?_sm_au_=iHHrHDVNnHPSjVQ6#api-publish-subscribe – auhuman

+0

Угу. Узел redis - это то, что вы хотите. Вы должны добавить это как ответ на свой вопрос. –

+0

Спасибо @AndrewEisenberg – auhuman

ответ

1

pubsub Redis может выполнять эту технику «сервер толчок», который вы описываете , Вы звоните «подписываются» на тему или темы, которые заинтересованы, и данные «публикуются» в теме, когда поступают данные. Ваш клиентский код будет вызываться с каждой опубликованной полезной нагрузкой.

Разница между ли это «правильной» очередью сообщений (например, RabbitMQ) является то, что

  • данные не помещается в буфер - если ваш подписавшись клиент не слушает, когда данные поступают, то данные пропущено
  • нет никаких квитанций на чтение - на других платформах очередей элемент очереди может быть отмечен «в процессе», пока рабочий имеет дело с ним. Элемент очереди может быть передан другому работнику после тайм-аута
  • масштабируемость - реальные очереди сообщений позволяют совместную работу между связанными рабочими: чем больше работников, тем больше способов совместной работы. PubSub отправляет все данные на все рабочие
+0

Спасибо @ Glynn Bird. У меня есть сомнение в том, что ваш первый пункт «данные не буферизованы». Когда я использую rmsq getMessage в подписчике, я могу получить все сообщения, отправленные издателем, даже если абонент не прослушивал, когда издатель отправил сообщение. Как это работает? – auhuman

 Смежные вопросы

  • Нет связанных вопросов^_^