我有点困惑这是否是使用 cron jobs/AWS Lambda 的正确方法。假设我有一个应用程序,可以让用户安排发送电子邮件和短信,我可以在函数 sendMessage 中执行此操作。每个 sendMessage 请求都会有一个特定的发送时间,而您只想发送一条消息/调用该函数,所以我觉得在 Lambda 上设置一个 cron 任务来每秒甚至每分钟检查一次,效率很低。要发送的新消息。是否可以避免类似的重复轮询,而只需向 Lambda 发送任务以在特定时间执行函数? Lmk 如果需要澄清:)
编辑:另外,我意识到这不是一个特定于代码的问题,但我尝试询问软件推荐,他们没有 cron 标签,所以我想这可能不是正确的地方
最佳答案
是的,运行 Cloudwatch 事件 (CRON) 的效率非常低,因为即使没有要发送的任务,它也会每 X 分钟调用一次 Lambda。而且,您无法为每条要发送的消息创建新的 Cloudwatch 规则,因为 Lambda 策略可能会变得太长。
我建议您查看Step Functions ,通过使用 Wait State等待消息需要发送的确切时间戳,然后发送任务状态(调用 Lambda 或直接发送到 SNS)。
关于lambda - AWS Lambda 可以运行多个特定的 cron 作业吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53905701/