我目前正在使用.scheduledEnqueueTime将消息排队到未来的日期运行。有时,消息中传递的数据所涉及的事件会发生更改或被删除,当发生这种情况时,我需要删除该消息。但是在搜索时,我无法找到或与其进行交互,有人能指点我方向吗?
我目前正在使用.scheduledEnqueueTime将消息排队到未来的日期运行。有时,消息中传递的数据所涉及的事件会发生更改或被删除,当发生这种情况时,我需要删除该消息。但是在搜索时,我无法找到或与其进行交互,有人能指点我方向吗?
你说得对,Natahan,目前没有办法从服务总线队列中取消(删除)已计划的消息。我们已经有其他客户遇到了这种情况,并将在未来的里程碑中添加此功能。同时,我看到有人使用跟踪某个工作项在会话状态中的进度模式,当计划的消息出现时,他们检查会话状态,如果已经完成/解决,则忽略该消息(然后可能将会话状态设置为null)。
Microsoft.ServiceBus.Messaging;
MessagingFactory messagingFactory = MessagingFactory.CreateFromConnectionString(connectionString);
var queueClient = messagingFactory.CreateQueueClient(resourceName, ReceiveMode.PeekLock);
var client = messagingFactory.CreateMessageReceiver(resourceName, ReceiveMode.PeekLock);
BrokeredMessage message = client.Receive();
if (message.EnqueuedTimeUtc < MessageEnqueuedDateTime)
{
message.Complete();
}