2010-02-06 16 views
7

Je cherche à implémenter RabbitMQ dans mon application PHP et j'utilise l'extension php-amqp. Ma seule question est la suivante, comment puis-je facilement interroger pour retourner le contenu de la file d'attente en PHP? Php-amqp ne semble pas me permettre de faire cela. Si je me trompe, s'il vous plaît aidez-moi ici :)Récupérer des messages de la/des file (s) de RabbitMQ

Répondre

2

James, pourriez-vous s'il vous plaît poser cette question sur rabbitmq-discuter? Votre question touche à ce que signifie «interroger» une file d'attente afin d'obtenir des messages. Dans RabbitMQ, vous consommez les messages des files d'attente et effectuez un filtrage à l'aide des liaisons de file d'attente. Jetez un oeil à cette intro - http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/

Vive

alexis RabbitMQ

2

Si vous avez besoin de savoir combien de messages sont dans une file d'attente, vous pouvez obtenir ces informations lorsque vous déclarez la file d'attente, ou si vous utilisez basic.get pour récupérer un seul message. Normalement, les destinataires des messages utiliseront basic.consume et ils ne connaîtront pas le nombre de messages en attente.

0

Ce genre de question sont plus sur queue data type et le concept général d'AMQP.

Dans AMQP (et dans RabbitMQ, qui est un courtier compatible AMQP), les files d'attente sont des files d'attente FIFO typiques. La file d'attente n'est pas ce type de types de données normalement utilisés pour l'accès aux éléments arbitraires et RabbitMQ ne permet actuellement pas de contourner le concept FIFO et d'autoriser ce type d'accès. Au moins hors de la boîte. Il y a peut-être des plugins de tiers, mais je n'en connais aucun. Et encore une fois, il ruinera tout le concept FIFO et il deviendra juste un nouveau redis ou quoi que ce soit, ne parle même pas d'impact sur les performances (on peut vérifier la complexité des structures de données communes, même Q & A sur SO - What are the time complexities of various data structures? donne une brève idée pourquoi l'ajout d'accès arbitraire n'est pas un objectif de l'AMQP ou de tout courtier compatible AMQP qui se soucie des performances). La plupart des questions sur l'accès arbitraire à une file d'attente surviennent lorsque les files d'attente sont placées dans un mauvais contexte: le concept de file d'attente ne convient pas à l'architecture actuelle ou désirée.