Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 等待主题交换上RabbitMQ的每个消费者的反馈_Python_.net_Rabbitmq_Rpc_Amqp - Fatal编程技术网

Python 等待主题交换上RabbitMQ的每个消费者的反馈

Python 等待主题交换上RabbitMQ的每个消费者的反馈,python,.net,rabbitmq,rpc,amqp,Python,.net,Rabbitmq,Rpc,Amqp,我有一个使用RabbitMQ.NET客户端的发布者和多个使用Pika Python模块的使用者。他们使用单一主题交换,消费者有单独的队列。我想实现一个分布式RPC风格的调用,这要求我在继续或超时之前等待JSON回复 当我发布我的消息时,我需要等待并从收到我消息的“所有”客户端获得回复。可能是发行方的单个消费者。我使用路由密钥发布消息,因此在发布之前不知道有多少消费者在侦听,但我仍然需要等待任意数量的客户端 这是为了通知用户我们正在处理他们的请求,并反馈他们的请求是否已完全满足 有没有办法通过Ra

我有一个使用RabbitMQ.NET客户端的发布者和多个使用Pika Python模块的使用者。他们使用单一主题交换,消费者有单独的队列。我想实现一个分布式RPC风格的调用,这要求我在继续或超时之前等待JSON回复

当我发布我的消息时,我需要等待并从收到我消息的“所有”客户端获得回复。可能是发行方的单个消费者。我使用路由密钥发布消息,因此在发布之前不知道有多少消费者在侦听,但我仍然需要等待任意数量的客户端

这是为了通知用户我们正在处理他们的请求,并反馈他们的请求是否已完全满足


有没有办法通过RabbitMQ实现这一点?我不想使用代理特定的RESTful API来获取消费者名称/消费者计数并使用循环等待。

显然,仅使用AMQP无法完成此任务。我必须使用RabbitMQ的API

向以下地址发出GET请求:http://rabbitmq_hostname:15672/api/exchanges/%2F/worker/bindings/source 返回vhost/中exchange worker的每个使用者。它被编码为%2F

获取具有单独队列的消费者的计数很简单,如下所示:

jsonResponse.Where(o => o["destination_type"] == "queue").Count();
如果我向主题交换发送一条消息,我就知道应该得到多少回复