【问题标题】:Microsoft.Azure.ServiceBus: The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queueMicrosoft.Azure.ServiceBus:提供的锁无效。锁已过期,或消息已从队列中删除
【发布时间】:2020-07-12 00:13:14
【问题描述】:

我有一个服务总线主题触发功能,只要将一些数据推送到主题,就会触发该功能。

函数看起来像这样:

[FunctionName("funcGetServiceBusEntities")]
public async Task Run([ServiceBusTrigger("sbtopic", "sbsub", Connection = "ServiceBusConnectionString")]Message message, MessageReceiver messageReceiver, [DurableClient] IDurableOrchestrationClient starter, ILogger log)
{  
   // perform processing on the data

   //...

   //...

   // Complete since we don't want to process the message again
   await messageReceiver.CompleteAsync(message.SystemProperties.LockToken);

   //...
}

我不确定为什么会出现此错误:

Microsoft.Azure.ServiceBus:提供的锁无效。锁已过期,或者消息已从队列中删除。参考:ab88d42f-5fed-4392-983a-921cc6eab776, TrackingId:7664c851-9f29-4b4f-a334-4038e0921810_B11, SystemTracker:sb-dev:Topic:sbtopic|sbsub, 时间戳:2020-03-31T12:09:32p>

CompleteAsync的实现是不是错了?

【问题讨论】:

  • 当消息被触发时,该消息将从服务总线主题中移除。任何更新?你能标记我的答案来结束这个问题吗?谢谢:)

标签: c# azure-functions azureservicebus


【解决方案1】:

这就是你现在所面临的:

请注意,触发后消息将被删除。因此,您无需对其进行标记,也不必担心再次处理该消息。它已被删除。

【讨论】:

    猜你喜欢
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    • 2023-03-03
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2019-11-02
    相关资源
    最近更新 更多