Ich versuche, Scheduler in MassTransit State Machine Saga ohne Angabe der Scheduler-Service-Adresse direkt zu verwenden.Saga-Planung ohne Angabe der Scheduler-Adresse in MassTransit
Ich benutze UseMessageScheduler
in der Buskonfiguration und es funktioniert gut, da ich context.Schedule
von innerhalb meiner Verbraucher tun kann.
Allerdings funktioniert es nicht in Sagas. Wenn ich versuche, .Schedule
zu tun, ich diesen Fehler:
A request timeout was specified but no message scheduler was specified or available
ich den MT-Code überprüft, und ich sehe dies:
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");
So gibt es tatsächlich einen Zweig, der normalerweise die Scheduler-Adresse erhalten soll von der Konfiguration, aber warum funktioniert es nicht?
Dies ist genau das, was ich in meinem Code habe und ich habe einen Fehler, dass die Planung Service-Adresse nicht angegeben ist. Vielleicht habe ich einen dummen Fehler, werde es überprüfen. –