2016-12-08 7 views
0

Je crée une application nodeJS. J'utilise la file d'attente des messages redis. Mais pour recevoir un nouveau message poussé dans la file d'attente, je dois appeler la méthode rsmq.receiveMessage. Je veux que ce soit automatique comme quand un nouveau message est poussé à Redis file d'attente de messages Je veux que le rsmq.receiveMessage appelé automatiquement: événement baséRedis Message Queue - Message de réception automatique dans l'application NodeJS

https://github.com/smrchy/rsmq

+0

client je trouve module de nœud Redis peut faire http://redis.js.org/?_sm_au_=iHHrHDVNnHPSjVQ6#api-publish-subscribe – auhuman

+0

Eh oui. Node Redis est ce que vous voulez. Vous devriez ajouter ceci comme réponse à votre propre question. –

+0

Merci @AndrewEisenberg – auhuman

Répondre

1

Redis pubsub peut effectuer cette technique « push serveur » que vous décrivez . Vos appels client s'abonnent au sujet ou aux sujets qui l'intéressent et les données sont publiées sur le sujet lorsque les données arrivent. Votre code client serait appelé avec chaque charge utile publiée.

La différence entre ce une file d'attente d'un message « correct » (comme RabbitMQ) est que

  • les données ne sont pas tamponne - si votre client abonné n'écoute pas quand les données arrivent alors les données
  • Il n'y a pas de reçus de lecture - dans d'autres plates-formes de mise en file d'attente, un élément de file d'attente peut être marqué «en cours» pendant qu'un opérateur le traite. L'élément de file d'attente peut être donné à un autre opérateur après un délai
  • Évolutivité - les files d'attente de messages réels permettent de partager le travail entre des travailleurs connectés: plus il y a de travailleurs, plus le travail est partagé. PubSub envoie toutes les données à tous les travailleurs
+0

Merci @Glynn Bird. J'ai un doute sur votre premier point "les données ne sont pas tamponnées". Quand j'utilise receiveMessage de rsmq dans l'abonné, je suis capable d'obtenir tous les messages envoyés par l'éditeur même si l'abonné n'écoutait pas lorsque l'éditeur a envoyé le message. Comment ça marche? – auhuman