Comment puis-je surveiller / gérer la file d'attente dans ZeroMQ?

Tout d'abord, je suis nouveau sur ZeroMQ et file d'attente de messages systèmes, de sorte que ce que je suis en train de faire peut être résolu par une approche différente. Je suis de la conception d'un système de messagerie qui effectue les opérations suivantes:

  • Plusieurs clients de se connecter à un courtier et d'envoyer l'id d'un élément qui doit être traitée. Le client se déconnecte immédiatement et ne pas attendre une réponse.
  • Le courtier envoie des articles pour les travailleurs, un élément par travailleur, pour effectuer certaines opérations. Chaque retour renvoie un signal que le traitement a été achevé.

J'ai un système rudimentaire de l'installation qui est du traitement des demandes/réponses correctement, mais j'aimerais aussi être en mesure de faire ce qui suit:

  • Requête au courtier de voir combien de processus sont effectivement en cours d'exécution sur les travailleurs et combien sont simplement en attente d'être exécuté.
  • Ont le courtier s'assurer qu'un seul processus par id est en cours d'exécution - si un doublon d'id arrive, et que le point n'est pas actuellement en cours de traitement par un travailleur, ne pas ajouter à la file d'attente.

Je suis aide d'un sondage de l'installation avec le courtier sockets. Le code que j'utilise est très similaire à cet exemple de Ian Barber.

Mon premier réflexe (bien que je ne suis pas sûr de la façon de la mettre en œuvre dans zmq) est le courtier de garder une trace de l'ids qui ont été reçus, et ceux qui sont activement en cours de traitement par les travailleurs. Il semble que le courtier transmet les demandes des travailleurs immédiatement, indépendamment de si oui ou non ils sont disponibles pour exécuter le traitement. Les travailleurs puis la queue de l'ids et de les traiter dans l'ordre. Ce n'est pas l'idéal car je suis à la recherche pour être en mesure de surveiller et de contrôler ce qui se passe dans le système centralisé, afin d'accroître la fiabilité.

De toute façon, toutes les astuces, des conseils ou des exemples de ce type de configuration, serait grandement apprécié.

source d'informationauteur jonstjohn