在MassTransit中,如果我计划一条消息在未来(比如3天)交付,并且我为该消息设置了1天的TTL,那么该消息的实际TTL是4天吗?
如果我将一条消息安排在30天以后,我很想将TTL设置为30+1天,但我不想这样做,以防会增加另外30天的TTL,而我不知道。
从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是不考虑的。