快速问题:我有一个传奇,它可能有一个场景,它需要处理可能在两种情况下出现的消息。 传奇仍然开放的地方和传奇已被标记为完整的地方。

如果传奇开放,伟大,继续正常。 如果传奇没有打开,它需要开始一个新的传奇。 处理这种情况的最佳做法是什么? 如果传奇是开放的, IHandleMessages<>显然很有效。 但是不会IAmStartedByMessages<>导致两个传奇打开吗? 这会很糟糕。 谢谢

===============>>#1 票数:4 已采纳

如果可以解析已经打开的传奇, IAmStartedByMessages<>将不会导致2个传奇打开。 您可以使用IAmStartedByMessages<>而不需要IHandleMessages<>

===============>>#2 票数:2

您仍然可以使用IAmStartedByMessages <>处理消息,只要确保将其包含在ConfigureMapping覆盖中即可。 这样,根据您找到现有saga的方式,您将返回现有实例或创建新实例。 HTH。

===============>>#3 票数:1

正如我从NserviceBus看到的那样,如果发现一些处理消息的传奇,新的传奇将不会启动。 (我检查了NBus 2.0)

所以你的场景应该正常工作。 您可以从示例应用程序中轻松检查。

你描述的情况仍然很奇怪。 我更喜欢有两种消息类型,一种用于传奇开始,另一种用于传奇工作。

  ask by Paul C Huff translate from so

未解决问题?本站智能推荐: