gpt4 book ai didi

c# - 单例 NServiceBus Saga

转载 作者:行者123 更新时间:2023-11-30 16:50:51 26 4
gpt4 key购买 nike

让一个 saga 处理所有消息的正确方法是什么?

我不认为我不能指定一些 message-to-saga 相关性。我可以吗?我相信这会导致“找不到传奇”错误。

一个天真的方法是在 saga 中有一些不变的 ID,但这似乎是错误的。

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.
}
}

最佳答案

而不是覆盖 ConfigureHowToFindSaga你可以提供 IFindSagas<T>.Using<M> 的实现它用于从 M 类型的消息中找到 T 类型的传奇。然后让它始终返回相同的实例。

参见 Complex Saga Finding Logic有关更多详细信息和一些示例。

关于c# - 单例 NServiceBus Saga,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34407301/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com