使用AWS Lambda + Cloudwatch()的Cronjob的替代方案

时间:2018-09-12 15:07:21

标签: amazon-web-services cron aws-lambda amazon-cloudwatch

我是一家初创公司的开发人员,现在我们正在使用大约30个cronjob,其中一些每分钟运行一次,其他的每天运行一次,而其他的则每天运行一次。问题是每分钟运行一次,而大多数时候则不需要。

这在某种程度上增加了我们的支出,因为在晚上,当大多数时候我们的服务没有人在线(并且不需要运行)时,它们仍然运行。

我们一直在讨论使用AWS将这些cronjob替换为基于事件的东西。但是,我找不到解决方案。这是我们其中一个cronjobs的示例:

  • 一个客户开始进行注册,并有8分钟的时间完成注册。现在,我们有一个cronjob,每分钟运行一次,以验证他是否完成,如果没有完成,则“删除”它。

尽管我可以用SNS + Lambda事件代替它。基本上,当用户开始注册时,向SNS发送一条消息,这将触发lambda函数。但是,它只能在8分钟后运行,而不能立即运行。

我在SNS上看到最多可以延迟15分钟,但是我们得到了一些其他的服务,该服务会在数小时后发送电子邮件,这是行不通的

任何人都知道我该怎么做?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用AWS step functions来实现工作流程,并在调用Lambda函数之前添加一个delay to wait