【发布时间】:2015-01-06 17:42:51
【问题描述】:
我必须通过电子邮件发送某个任务通知,该通知需要每 6 小时发送给期望它的用户。因此,我使用 node-cron 在我的服务器上安排了一个作业,该作业每 30 分钟唤醒一次,以检查是否有任何用户没有回复他们的电子邮件,使用带有 updated_at col 的 mysql db 进行跟踪。工作正常!
但现在我必须让它在分布式环境中工作。将 Elastic Beanstalk 与 1-4 个微型 ec2 实例一起使用。除了我拥有的(MySQL)之外,我不想添加任何其他数据库/存储/队列。
- 有人可以列出与 node-cron 结合使用的步骤吗? (确保某项任务执行一次,我不想在我的 6 小时期限之前发送通知)
- 或者我们是否有其他库可以在 mysql 中执行此操作,以确保任务只执行一次
- 当我的服务器或数据库上的负载不紧张时,我可以在 30 分钟内完成任务。
- 有没有办法在不使用 db(和多个实例)的情况下做到这一点,因为每 30 分钟安排一次工作可以正常工作!
补充一下,我的api server和worker是一样的。
【问题讨论】:
-
您是否升级了您的解决方案(并将其开源)?还是您找到了替代方案?
-
在 nodejs 中使用了一个简单的 Timer 来做到这一点,不漂亮!
标签: javascript mysql node.js amazon-ec2 cron