微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js – AWS之上的可扩展cron体系结构

我们有客户使用的Web应用程序,他们可以选择创建报告.报告包含电子邮件和预定时间(例如:每天上午9点).

当预定时间与当前时间匹配时,Web应用程序会执行某些操作并将结果发送到电子邮件.

我有一个要求,我需要在swf之上实现可扩展的cron架构.

我需要的架构如下所示:

>用户创建报告(完成)
> Webapp将报告保存到数据库,并通过SQS(简单查询服务)将报告数据和计时器发送到cron微服务. (DONE)
> Cron微服务读取传入的SQS消息,并在计时器结束后发回SQS消息. (需要这个)
> Webapp读取SQS消息并触发Data Analyzer和Emailer功能以发送分析数据. (DONE)

从我读到的SWF服务是我们可以创建cron作业和SWF autoscales.如何使用SWF创建可扩展的cron微服务?

对任何建议开放……

附: Web应用程序是用nodejs编写的,在nodejs中编写微服务会很好.

更新1:花了一些时间研究可能的解决方案,
我找到了https://github.com/capside/CloudCron项目.但它依赖于cloudwatch事件.对于许多预定的任务,它可能会收取很多IMO.

更新2:
Banjo Obayomi建议在SQS和CWE中使用Lambda函数.

解决方案1:

> Webapp发送SQS消息.
> SQS消息触发Lambda function1
> Lambda函数创建CWE规则
> CWE规则触发Lambda function2
> Lambda function2将SQS消息发送回webapp.

限制:
我们每个地区只能创建100个CWE规则.这意味着webapp无法生成超过100个具有计划日期的报告.

链接
cron-in-aws-with-lambda-function

解决方法

听起来你可以使用AWS Lambda作为你的摄取点,从传入的SQS消息中获取函数触发器,进行处理然后再发送SQS消息.

https://aws.amazon.com/blogs/aws/aws-lambda-adds-amazon-simple-queue-service-to-supported-event-sources/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐