我们正在寻找一些有关如何使用 AWS Simple Queue Service (SQS) 和用 Node.js 编写的工作线程在将来安排任务的建议/策略。
任务必须安排在“2 小时后”等时间。与 cron 作业不同,它们不是周期性的,并且必须在计划后 2 小时内执行(但是不需要精确到秒)。
当然,它们还需要存储在某种持久数据库中,直到执行为止。因此,将它们放在服务器的内存中(例如只是等待 setTimeout
被触发)是行不通的。
对于我们如何管理这个问题有什么想法吗?
最佳答案
我认为在这里使用 sqs 并不是最好的用例。但是,如果您必须这样做,那么有 2 个选择。 1. 当您将消息发布到队列时,可以选择延迟消息传递。这意味着该消息当时不会发送给任何人。但这个值不能超过15分钟。 2. 您可以在消费者应用程序中读取该消息,然后如果尚未执行该操作,则只需更改该消息的可见性超时,以便在执行该操作之前该消息不会对任何其他消费者可用是不被执行的。
关于javascript - 为基于 SQS 的工作人员设置 future 某个日期的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29000880/