【问题标题】:Amazon SQS FIFO Queue send message validationAmazon SQS FIFO 队列发送消息验证
【发布时间】:2018-08-29 21:16:28
【问题描述】:

我正在使用亚马逊的 fifo 队列,当我发送消息时,我想知道该项目是否是通过我的呼叫添加的,或者消息是否已经在队列中并且它只是返回 true

【问题讨论】:

  • SQS.SendMessage 不返回“true” - 请参阅 docs。出于好奇,为什么是否删除重复数据很重要?根据此检测,您将运行什么不同的方法?
  • 我想将 X 条唯一消息添加到队列中。如果一条消息已经在队列中,我想尝试将另一条消息放入队列中,直到我收到从该进程添加到队列中的 X 条消息

标签: amazon-web-services amazon-sqs fifo


【解决方案1】:

假设您只有一个进程将消息添加到队列中,只需跟踪结果中的sequenceNumber(即:将其添加到Set) - 一旦您拥有 X 个唯一的序列号,您就设置好了(没有双关语)。

如果您有多个进程添加消息,则需要

  1. 确保每个进程发送的消息是唯一的(因此可以使用与单个进程相同的机制),或者
  2. 使用某种机制在进程之间共享信息
    • 正确执行此选项可能比其价值更昂贵,我强烈建议针对选项 1 进行设计,或者重新考虑每个进程准确发送 X 个唯一消息的要求,特别是如果“大约 X" 就足够了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-12
    • 2019-04-11
    • 2017-02-07
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多