У меня есть сага, которая работает в течение дня.Борьба за реализацию IFindSagas
Получив сообщение, я хочу найти активную сагу и сделать что-то в методе Handle (message).
У меня нет метода ConfigureHowToFindSagas, поскольку я хочу текущий, если он есть. Все полученные сообщения будут влиять на одну сагу до тех пор, пока сообщение таймаута не будет получено. Текущая сага завершается, и после получения нового сообщения создается новая. Но из того, что я прочитал, мне нужно реализовать IFindSagas, чтобы это сделать, и, возможно, мой собственный сага.
Мне нужен совет о том, с чего начать, а также если это правильный путь. Примеры кода были бы полезны, поскольку я по-прежнему относительно новичок в использовании интерфейсов.
// 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");
}
приоритету метод ConfigureHowToFindSagas как вызывает инфраструктуру для возврата текущей саги (если есть один). Кстати, является ли метод Run() реализацией IWantToRunAtStartup, который вы добавили в свой сага? Если это так, это способ сделать это. –