客户端的单独队列是仅向他们发送消息的好方法吗?

问题描述 投票:0回答:1

我有一个系统,客户端从队列中提取任务(通过 amqp,使用 RabbitMQ 作为消息服务器)。当一个新客户端产生时,他会拉取一个任务,告诉主服务器他是该特定任务的负责人,并开始执行长期任务。从服务器端,我希望能够取消该客户端上的任务,以便他可以继续执行另一个任务,以防任务已经导致错误。

在现有任务队列上推送取消任务是没有选择的,因为我必须保证它及时到达,甚至到达同一个客户端。

当客户端生成时,客户端只为他设置一个专用的交换器和队列,服务器可以向其发送命令,这是一个好方法吗?

rabbitmq amqp
1个回答
2
投票

客户端不会设置专门的交换器 - 您可以使用默认的主题交换器或设置自己的主题交换器。

然后,当客户端拉取任务时,它还会创建自己的独占队列,并将该队列绑定到特定“取消任务 X”路由键的主题交换。然后,客户端订阅该队列。如果必须取消任务,“服务器端”可以使用适当的路由键向主题交换器发布消息。

© www.soinside.com 2019 - 2024. All rights reserved.