我有一个活动队列,它将包含来自Publisher的所有消息。根据消息处理结果,我的使用者读取这些消息和Acks/Nacks。
while (true)
{
var ea = (BasicDeliverEventArgs)consumer.Queue.Dequeue();
var body = ea.Body;
var message = Encoding.UTF8.GetString(body);
var processed = ProcessMessage(message)
if (processed)
如果我尝试将一条消息发送到一个用户被拒绝了“发送消息”权限的队列中,那么发送的消息就会消失。它不会出现在死信队列中,也不会出现在即将离开的队列中,也不会出现在我想要查看的任何其他地方。在发送消息时也不会引发任何类型的异常。
那条信息怎么回事?它真的只是被吃掉了还是我错过了什么?
下面是我用来发送消息的代码:
var q = new MessageQueue(@"[ComputerName]\Test");
q.Send("foo");
我将感谢您对此的想法。
Node app 1 sends data to a RabbitMQ queue. The data contains a unique ID.
Node app 2 requests data with a specific ID from the RabbitMQ queue.
如您所见,我需要能够从队列中选择特定的消息,而不仅仅是下一条可用消息。
这个是可能的吗?我该怎么做呢?
谢谢。
我正在编写用于监视和修复Azure上的dead letter queue of a topic subscription中的消息的功能。
我可以使用_subscriptionClient.PeekBatch(10)获得一个消息列表,以供显示;但是,当我们想要实际删除其中一条消息时,我们会陷入困境。
工作流程如下:
获取所有消息的列表
将特定消息(例如集合中的第5个on )发送回原始队列进行重新处理。
将相关的死信消息标记为.Complete()。
问题是,虽然我们有消息列表,但如果不首先使用.Complete(),就不能在特定消息上调用.subscriptionClient