是否可以有选择地从 AWS SQS 读取?

Is it possible to selectively read from AWS SQS?

我有一个用例。我想一直从 SQS 读取,除非发生另一个事件。

例如,我将足球新闻作为消息输入到 SQS 中。我想一直取回它们,除了进行现场比赛的时候。

除非有另一个事件完成这项工作,否则是否有可能阅读?

我浏览了文档和 Stack Overflow,但没有看到解决方案。

评论:我有一个小而周的服务,由于技术限制我不能增加它(memory/CPU,等等),但我仍然想要 2 “冲突”流程将在服务中。他们都应该与同一个 API 通信,我不希望他们发送相互冲突的请求。

有没有办法做到这一点,或者我是否必须使用 SQS 编写自定义通信器?

您不能 select 您希望从 SQS 中读取哪些邮件以及您不想从中读取哪些邮件 - SQS 中没有过滤功能。

如果您有需要随时处理的消息和其他只需要偶尔或分批处理的消息,您应该将它们放在单独的队列中并分别读取。

您没有提及从队列中读取的基础架构,但如果它是 EC2 上的进程,您可以在实时比赛进行时停止它,稍后再重新启动它。 SQS 专为异步消息传递而构建,最多可将消息存储 14 天(取决于您的配置),直到消费者可以阅读它们。