Я использую MassTransit, чтобы запланировать сообщение для последующей доставки, используя подключаемый модуль планирования ActiveMQ.
var provider = new ActiveMqScheduleMessageProvider(_sendEndpointProvider);
var scheduler = new MessageScheduler(provider, _bus.Topology);
var isPublishAddressFetched = _bus.Topology
.Publish<TMessage>()
.TryGetPublishAddress(_bus.Address, out var publishAddress);
if (!isPublishAddressFetched)
throw new InvalidOperationException("Publish address could not be fetched from " + _bus.Address);
using var combinedCancellationTokenSource = GetCombinedCancellationTokenWithTimeout(cancellationToken);
await scheduler.ScheduleSend(
publishAddress,
delay,
message,
combinedCancellationTokenSource.Token);
Это прекрасно работает, но я не знаю, как указать TTL в этом сценарии (с MessageScheduler
). Любые идеи?