Я пытаюсь использовать планировщик в саж-машине состояния MassTransit, не указав непосредственно адрес службы планировщика.Saga scheduling без указания адреса планировщика в MassTransit
Я использую UseMessageScheduler
в конфигурации шины, и он отлично работает, так как я могу сделать context.Schedule
внутри моих потребителей.
Однако, это не работает в сагах. Когда я пытаюсь сделать .Schedule
, я получаю эту ошибку:
A request timeout was specified but no message scheduler was specified or available
я проверил код МТ, и я вижу это:
MessageSchedulerContext schedulerContext;
if (_request.Settings.SchedulingServiceAddress != null)
{
ISendEndpoint scheduleEndpoint = await consumeContext.GetSendEndpoint(_request.Settings.SchedulingServiceAddress).ConfigureAwait(false);
await scheduleEndpoint.ScheduleSend(consumeContext.ReceiveContext.InputAddress, expirationTime, message).ConfigureAwait(false);
}
else if (consumeContext.TryGetPayload(out schedulerContext))
await schedulerContext.ScheduleSend(message, expirationTime, Pipe.Empty<SendContext>()).ConfigureAwait(false);
else
throw new ConfigurationException("A request timeout was specified but no message scheduler was specified or available");
Таким образом, есть на самом деле ветвь, как правило, получить адрес планировщика из конфигурации, но почему это не работает?
Это именно то, что у меня есть в моем коде, и я получил сообщение об ошибке, указывающей, что адрес службы не указан. Может быть, у меня есть глупая ошибка, дважды проверьте. –