提问者:小点点

在MassTransit中,如果我为一个预定的消息设置了一个TTL,初始延迟是否包括在内?


在MassTransit中,如果我计划一条消息在未来(比如3天)交付,并且我为该消息设置了1天的TTL,那么该消息的实际TTL是4天吗?

如果我将一条消息安排在30天以后,我很想将TTL设置为30+1天,但我不想这样做,以防会增加另外30天的TTL,而我不知道。


共1个答案

匿名用户

从MassTransit存储库来看,TTL似乎是在发送消息时应用的,而不是在创建消息时应用的:

if (context.TimeToLive.HasValue)
    transportMessage.NMSTimeToLive = context.TimeToLive > TimeSpan.Zero ? context.TimeToLive.Value : TimeSpan.FromSeconds(1);

...
    
var publishTask = Task.Run(() => producer.Send(transportMessage), context.CancellationToken);

因此,如果您设置您的发布时间为1天,直到消息发送,TTL是不考虑的。