【问题标题】:How to use cancellationToken "as necessary" with Azure Service Bus?如何在 Azure 服务总线中“根据需要”使用 cancelToken?
【发布时间】:2020-04-07 23:48:10
【问题描述】:

Azure Service Bus documentation中有一条评论说:

// 注意:使用根据需要传递的cancellationToken来判断是否 queueClient 已经关闭。

// 如果 queueClient 已经关闭,可以选择不调用 CompleteAsync() 或者 AbandonAsync() 等

// 避免不必要的异常。

我一直在尝试查找有关如何“根据需要”使用令牌的更多信息,但这对我来说并不明显。我尝试阅读Task Cancellation 上的部分,但结果并不明智。

令牌有一些看起来很有趣的属性,CanBeCancelledIsCancellationRequested

if (!token.IsCancellationRequested)
{
    await queueClient.CompleteAsync(message.SystemProperties.LockToken);
}

if (token.CanBeCanceled)
{
    await queueClient.CompleteAsync(message.SystemProperties.LockToken);
}

在窥视锁定模式下接收消息时,如何“根据需要”正确使用令牌?

【问题讨论】:

    标签: azureservicebus


    【解决方案1】:

    IsCancellationRequested 属性是您正在寻找的属性,您共享的 if 语句是您应该如何使用它。

    此外,您也可以在开始任何长时间运行的进程之前进行相同的检查,因为我想无论如何都会重新处理消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-05
      • 2013-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多