2015-03-13 117 views

回答

1

您无法查询RabbitMQ是否已经传递了特定的消息,但是如果您需要知道消息是否已由消费者处理,则可以使用RPC实现来获取一次发送回发件人的响应你的讯息已被处理。

你可以在RabbitMQ官方教程here上找到一个关于如何实现RPC解决方案的例子。

+0

因为我有一名工作人员可能需要很长时间处理一项工作,所以我希望能够知道它是否正在处理中。我知道我可以在处理开始时发回消息,但只有服务器知道工人何时意外死亡。无论如何,我猜你的答案(“你不能”)是正确的...... :-( – 2015-03-13 11:00:11

+0

是的,这很难掩盖边缘情况,但是你总是可以利用RPC模式发送来自消费者的响应if如果没有任何问题,只需回答运行是否成功。如果消费者本身因意外的异常崩溃,或者由于网络或RabbitMQ问题,这当然是不可能的。 – eandersson 2015-03-13 11:16:52

相关问题