1

假设我有很多工作,每个工作都由许多工作应用程序处理的大量基本操作组成。

我为每个操作向工作人员发送一条消息,以便他们可以捕获这些消息,执行所需的操作,然后通过控制队列中的消息通知某些控制应用程序。

但是我怎么知道所有的操作都完成了呢?SQS 消息是无序的,所以我不能只发送“最后一个”消息。

4

1 回答 1

1

考虑到消息不仅可能出现故障,而且它们可能由于各种原因完全失败,因此如果您的问题需要,您通常会同时添加消息和特定于作业的序列号。

例如; 您提交的第一个工作由三个项目组成,因此它是工作 1-3-1、1-3-2 和 1-3-3。在这个假设的编号方案作业 1 中,由三个部分和三个部分组成。当主机收到 131 和 133 时,它“知道”它正在等待 132 以完成作业。如果它在一段时间内没有收到它,它甚至可以重新发出请求。

像这样的一些方案可以防止您的请求和请求片段混淆。

祝你好运

于 2011-10-31T12:35:48.957 回答