是否可以将调度程序事件发送到SQS?

问题描述 投票:0回答:1

我有一个用例,允许用户在我的应用程序中安排一些作业。例如,用户可以选择每天的时间(例如13:00)将钱转入选定的账户。不同的用户可以选择每天、每月或每周不同的时间。

目前,我在

AWS Scheduler
中创建一个调度程序 cron 作业,每分钟触发一个 lambda,该 lambda 根据当前时间查找所有计划作业,然后将这些作业作为单独事件发送到 SQS。另一个 lambda 将从 SQS 中提取事件来完成真正的工作。

我的问题是

scheduler lambda
必须每分钟运行一次,大多数时候它会得到空结果。是否可以向 SQS 发送预定事件,让 SQS 根据预定时间进行偶数处理?我做了一些搜索,但找不到有关 SQS 的任何解决方案。如果没有,AWS 服务中有什么好的解决方案可以实现这一目标?

我研究了cloudwatch event、EventBridge和AWS调度程序。但他们都不支持基于用户的时间表。如果我有数百万用户,我需要一种方法能够让每个用户安排自己的任务。

amazon-web-services aws-lambda amazon-sqs
1个回答
0
投票

一种可能的解决方案是将 AWS StepFunctions 与任务计时器结合使用。 StepFunction 允许使用等待状态,该状态将等待指定的日期和时间。

看一下这个示例(它使用 SNS,但可以轻松修改以触发不同的目标):https://docs.aws.amazon.com/step-functions/latest/dg/task-timer-示例.html

© www.soinside.com 2019 - 2024. All rights reserved.