我有一个持续一天的传奇。
收到消息后,我想找到活动的 saga 并在 Handle(message) 方法中执行操作。
我没有 ConfigureHowToFindSagas 方法,因为我想要当前的方法,如果有的话。收到的所有消息都将影响一个 saga,直到收到超时消息。当前的 saga 完成,并在收到新消息后创建一个新的。但是从我读到的内容来看,我需要实现 IFindSagas 才能做到这一点,可能还有我自己的 Saga 持久化器。
我需要关于从哪里开始以及这是否是正确的方法的建议。代码示例会很有帮助,因为我对使用接口还比较陌生。
// fragment from Saga<PaymentSagaBase>
public void Run()
{
ScheduleBatchIDForSession = Guid.NewGuid();
// Message handlers aren't auto-subscribed in Saga scenarios so it needs to happen here.
Bus.Subscribe<PaymentRequested>();
Bus.Subscribe<PaymentCancelled>();
Logger.Info(string.Format("Creating new Saga.");
RequestUtcTimeout(DateTime.Now.AddHours(23), "End of batch");
}