Что было бы правильным способом, чтобы все сообщения обрабатывались одной сагой?Singleton NServiceBus Saga
Я не думаю, что не могу указать некоторую корреляцию message-to-saga
. Могу я? Я считаю, что это приведет к ошибке «сага не найдена».
Наивный способ состоит в том, чтобы иметь некоторый постоянный идентификатор в саге, но это кажется неправильным.
class SomePolicy :
Saga<SomePolicy.State>,
IAmStartedByMessages<SomeEvent>
{
internal class State : ContainSagaData
{
public int Id { get { return 1; } }
}
protected override void ConfigureHowToFindSaga(SagaPropertyMapper<State> mapper)
{
mapper
.ConfigureMapping<SomeEvent>(message => message.MagicConstant)
.ToSaga(saga => saga.Id);
}
public void Handle(SomeEvent message)
{
// Modify the saga state here.
}
}
Зачем вам это нужно? –
Это выглядит правильно (не запускал код), в чем проблема? Что вы пытаетесь сделать? –
@TomRedfern, скажем, я хочу объединить некоторую глобальную информацию, например, сколько раз определенные события происходят в системе, я мог бы использовать саунд-синглтон, чтобы получать все эти события, увеличивать счетчик и выполнять действие, когда счетчик достигает определенного порог. – izildur