【问题标题】:Amazon SQS: how to find end of job?Amazon SQS:如何找到工作结束?
【发布时间】:2011-12-17 08:20:50
【问题描述】:

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

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

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

【问题讨论】:

    标签: amazon-web-services message-queue amazon-sqs architectural-patterns


    【解决方案1】:

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

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

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

    祝你好运

    【讨论】:

    • 好吧,如果我看到 #133 消息,我知道还有 132 条消息在某处浮动。但我仍然不知道结束在哪里 - 在消息 #134 或消息 #1000。
    • 我指的是一个三部分的数字,但最后一部分写得不好。 133 表示 1-3-3,因此您知道您拥有三部分消息的第三部分。
    • 重新阐述 - 如果您有 1-1000-555,那么您有 1000 份工作的 555 部分。希望有帮助(所以三个独立的领域......)
    猜你喜欢
    • 1970-01-01
    • 2017-06-21
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-16
    • 1970-01-01
    • 2015-02-25
    相关资源
    最近更新 更多