1

我有一个相当概念性的问题,我希望不会被认为太笼统或太愚蠢:)

在数据项需要经过许多步骤的应用程序中(例如 - 第 1 步 - 从 CSV 文件解析并生成报告,第 2 步 - 然后根据上一步生成的报告运行报告等),让我们假设处理是使用持久队列实现的,这样当发现新的原始文件时,会在队列中放置一条消息,要求处理所述文件。消息由处理文件的消费者选择,并将另一条消息放入队列中,以便下一步处理等。

我的问题是 - 处理此过程中的故障的最佳做法是什么?假设第 1 步的消费者完全失败。

在基于队列的架构上实现这样的批处理是否完全符合逻辑/效率?

4

1 回答 1

1

是的,队列没问题,您还需要一个错误队列,您可以在其中将消息放在有问题的文件和记录上

请注意,完全失败是一种简单的情况,因为您可以稍后重新处理整个文件(如果它是一个临时问题)或忽略该文件(如果它有故障)。更严重的问题是部分失败,其中一些记录有问题。

如果一个步骤的失败意味着必须以某种方式撤消其他步骤,那么您可能希望将其作为一个saga来实现。如果您想更好地控制流程,您可能需要考虑编排

于 2012-07-23T10:05:21.457 回答