如何将消息放入 RabbitMQ 队列并将其留在那里?

How do I put a message on a RabbitMQ queue and just leave it there?

我几乎尝试了文档中可以找到的所有设置,但似乎无法将消息放入队列中(错误队列除外)。

我试过:

transport.UsePublisherConfirms(false);

SendOptions().RequireImmediateDispatch();

EndpointConfiguration().DisableDurableMessages();

似乎没有任何效果。如果没有处理程序,它就会返回,直到它在错误队列中结束。

首先,我真的很好奇您在这里想要实现的目标。因为为什么您希望消息永远留在队列中?如果您能提供这方面的信息,那将非常有帮助,因为可能会有更好的解决方案。此队列顶部是否已有端点 运行?是否要在部署处理程序之前发送消息,以便在部署后开始处理消息?

您可能想要做的是创建一个自定义重试策略,重试直到永远:https://docs.particular.net/nservicebus/recoverability/custom-recoverability-policy#implement-a-custom-policy

但在实际执行此操作之前,请考虑其含义。端点将继续尝试此操作,其他消息的处理速度将越来越慢,具体取决于队列中连续重试消息的数量。