在基于 SQS 的工作人员上设置将来的任务

Setting tasks at a future date on a SQS-based worker?

本文关键字:设置 将来 任务 工作人员 SQS      更新时间:2023-09-26

我们正在寻找一些关于如何使用 AWS Simple Queue Service (SQS) 和用 Node.js 编写的工作线程在未来时间安排任务的建议/策略。

例如,任务必须安排在"从现在起 2 小时"。与 cron 作业不同,它们不是周期性的,它们必须在计划后正好 2 小时执行(但是,它不需要精确到秒)。
当然,它们也需要存储在一种持久数据库中,直到它们被执行。因此,将它们放在服务器上的内存中(例如,只是等待触发setTimeout)是行不通的。

关于我们如何管理它的任何想法?

我不

认为在这里使用 sqs 真的是最好的用例。但是,如果必须,则有2个选项。1. 当您将消息发布到队列时,有一个选项可以延迟消息传递。这意味着消息在这段时间内不会传递给任何人。但此值不能超过 15 分钟。2. 您可以在消费者应用程序中读取消息,然后如果尚未执行该操作,则只需更改该消息的可见性超时,以便在不执行所述操作之前,该消息不会提供给任何其他消费者。