【发布时间】:2021-02-11 06:44:29
【问题描述】:
我正在从服务总线发布者发送一条消息,实际上是在进行 5 秒的 db 轮询。
var message = new Message(Encoding.UTF8.GetBytes(object));
message.SessionId = sessionId;
return client.SendAsync(message);
在消费者方面,我正在接收消息并进行一些处理,这可能需要也可能不会超过 5 秒。我们可以致电CompleteAsync()、AbadonAsync() 来关闭该会话。
我们可以从发布者客户端取消吗?
基本上,我想要这样的东西
queueClient.publish(message); // publish message to queue
var tokenSource - new CancellationToken();
var task = Task.Run(()=>{
...
}, tokenSource.Token);
if(!task.Wait(5000, tokenSource.Token))
{
queueClient.Cancel(); // <-----Cancel/Abadon processing in service bus consumer.
}
【问题讨论】:
标签: c# azure-servicebus-queues