RabbitMQ(从c#客户端调用)是否能够在队列上分配工作并允许发布者接收成功处理的确认?
似乎应该可以在不添加额外队列的情况下实现,但除非我遗漏了某些确认/确认,否则不要告诉原始发布者消息已成功处理。所以它无法知道是否所有的工作都得到了处理。
我目前正在使用标准的兔子c#客户端,但我知道easynetq也非常成熟,所以建议用一种很好的方法来实现这一目标。
答案 0 :(得分:1)
不,RabbitMQ中没有任何东西可以做到这一点。您从RabbitMQ中获得的最多是确认消息已传递给工作人员,您可以将其解释为"有人开始处理该任务"。您的工作人员需要找到一种方法,通过任务的结果与调用者进行通信,这可能是另一种交换队列机制,但您的工作人员更有可能将任务的结果放在Redis或数据库中。如果写得很好,甚至可以通过相同方式传达失败代码。