重新启动大众运输传奇

问题描述

在我的应用程序中,用户可以触发特定资源的更新。发生这种情况时,会发送一个 UpdateInitiated 事件。

根据该事件启动 MassTransit Saga,并触发一系列其他事件,直到它认为自己已完成并完成。

更新正在进行时,用户可以对资源进行更改并请求新的更新。我试图弄清楚如何在为同一资源发送新的 UpdateInitiated 事件时中止正在进行的 Saga 并创建一个新实例。

我正在考虑的两种方法

  1. 与 ResourceId 相关联。所以最初的 Saga 也会得到第二个 UpdateInitiated 事件。但后来我不知道如何重置传奇(并停止侦听与上一次更新相关的事件)。

  2. 使用 CorrelatedBy<Guid>(就像我现在所做的那样)。这将为新的更新事件创建一个新的 Saga。但后来我不知道如何取消最初的 Saga。

有没有办法在 Saga 中监听任意事件?例如:“即使不相关也监听所有 UpdatedInitiated 事件,如果有匹配 ResourceId 的事件,则取消当前的 Saga”。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)