为什么 ServiceBusTrigger 重试没有错误?

Why ServiceBusTrigger retrying without Error?

我有 ServiceBusTrigger ServiceBusQueues.QUEUE_NAME

    [Function(nameof(QueueProcess))]
    public async Task QueueProcess([ServiceBusTrigger(ServiceBusQueues.QUEUE_NAME, Connection = "ConnectionString")] string message)
    {
        try
        {
            Console.Write(message); 
        }
        catch (Exception ex)
        {
            throw;
        } 
    }

每当我向那里发送消息时,它都会重试 10 次并将消息移至死信。
没有错误,函数成功完成。
我知道由于 Max Delivery Count.

中描述的原因,这种行为可能会发生

请指教,什么会导致 ServiceBusTrigger 没有完成消息并在没有错误的情况下继续重试?

在 ServiceBusTrigger 中,我们可以将自动完成设置为 True。这有助于我们在不将任务发送到死信队列的情况下完成任务。在大多数情况下,它将作为默认值。

设置为 false 时,您负责调用 MessageReceiver 方法来完成、放弃或删除消息。如果抛出异常(并且调用了 MessageReceiver 方法的 none),则锁保持不变。锁过期后,邮件会重新排队,DeliveryCount 会增加,锁会自动更新。

我们需要检查是否安装了扩展程序,因为“Microsoft.Azure.WebJobs.Extensions.ServiceBus”高于 4.3.0

在这里,该函数将调用,它将尝试处理同一条消息两次,并在第三次将消息放入死信队列 (DLQ)。您可以通过 Azure 门户手动检查 DLQ 的内容。

参考blog for more understanding in managing servicebustrigger and about host settings