0

标题可能不太适合我的要求,但我想不出一个好的表达方式。

本质上,我正在设计一个系统,其中事务进入系统,经过验证,应用业务规则并将事务持久化到数据库中。每个事务都有一个已定义的键,所以我正在考虑创建一个实现控制器模式并定义这些步骤的 saga。

然而,问题出现在数据的定时传输之后。我可能有数千个不同的交易需要在指定的截止时间传输给不同的合作伙伴。我需要指定合作伙伴的所有交易都在该合作伙伴的文件中。我没有看到的是如何让所有具有单个 saga 的交易同时触发和收集。

我正在考虑实施超时以使每个事务在其截止时间触发,但是我如何将所有事务收集在一起?

我正在研究的一个选项是使用 Quartz.Net 设置定时作业以在每个截止时间运行,然后让该作业将消息发布回 saga 并使用 ConfigureHowToFindSaga 函数更新事务的状态。我只是不确定这是最好的实现。

4

1 回答 1

0

在您处理给定合作伙伴的至少一项交易后,您可以根据当前时间和预期截止时间的计算请求超时。例如,如果您在上午 9 点处理一笔交易,这意味着您至少有一笔交易要发送给该合作伙伴,如果您的截止时间是下午 5 点,那么请求的超时将为 8 小时。处理超时后,您可以发送文件并更新文件发送的 saga。

于 2014-06-25T12:37:07.617 回答