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/

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...