2

我有一个传奇,它代表了“人”到“案例”的长期工作分配过程。几个事件可能会启动它,并且在流程结束时我们有一个分配确认,此时 saga 完成并且 Person 被分配给 Case。我想为这个传奇设置一个超时时间,这样我们就不会无限期地等待确认——这绝对是一个有效的业务用例。那里没有困难 - 相当香草。

扭曲的是,如果有人搁置案例,则此分配过程可能会被阻止。我有一个可以订阅的事件,因此我的 assignment saga知道Case 处于暂停状态,但除非我调整超时或以某种方式暂停它,否则 assignment saga 可能会在 Case hold 被释放之前超时。这样做没有商业意义,所以我基本上想停止超时时钟,直到其他事件发生。

几年前这里也提到了同样的问题。这仍然是不可能的,还是 v3.x 中有允许它的新功能?如果没有,这是计划中的功能吗?

谢谢!

4

2 回答 2

3

当您的案件被搁置时,为什么不完全取消该实例的超时?您的 saga 维护案例的状态和计算的案例到期时间。这可以在您创建第一个超时时设置。当案例被重新激活时,只需计算重新激活和保存的“截止日期”的时间差,并为该实例创建一个新的超时时间。您可能还需要考虑案例被搁置的时间,并设置一个新的截止日期,您可以将其保存回实例状态。

于 2013-02-06T22:13:59.710 回答
2

我不认为有一种方法可以直接切换到计时器并将超时消息“搁置”

我会在传奇的超时处理程序中使用该逻辑。检查 case 是否处于暂停状态并请求另一个超时而不结束 saga。

于 2013-02-06T20:29:48.090 回答