MassTransit - MessageLockExpiredException - 较长的执行消息在完成时失败

问题描述 投票:0回答:1

我有一个 MassTransit Consumer,平均应在 15-20 分钟内完成其消息。

我正在使用 Azure.ServiceBus.Core 传输。

消息将通过所有配置的业务逻辑成功运行,但在消息完成后,消息会出现

MassTransit.MessageLockExpiredException
故障。

Application Log

我尝试设置 MaxAutoRenewDuration 和 LockDuration

                x.UsingAzureServiceBus((context, cfg) =>
                {
                    cfg.Host(hostContext.Configuration["AzureServiceBus_ConnectionString"]);
                    cfg.UseConsumeFilter(typeof(ConsumeContextFilter<>), context);
                    cfg.ConfigureEndpoints(context);
                    cfg.MaxAutoRenewDuration = TimeSpan.FromMinutes(30);
                    cfg.LockDuration = TimeSpan.FromMinutes(30);
                });
azureservicebus masstransit
1个回答
0
投票

我看到您正在尝试将锁定持续时间设置为 30 分钟,让我解释一下为什么这是不可能的。

服务总线消息的最长锁定持续时间为 5 分钟,请参阅服务总线文档的本节。解决这个问题的方法是在锁过期之前(即 5 分钟过去之前)更新锁。

© www.soinside.com 2019 - 2024. All rights reserved.