我必须通过电子邮件发送某个任务通知,该通知需要每隔6小时发送给期望它的用户。所以我使用node-cron在我的服务器上安排一个工作,每30分钟唤醒一次,检查是否有用户没有回复他们的电子邮件,使用带有updated_at col的mysql db进行跟踪。工作正常!
但现在我必须让它在分布式环境中工作。使用带有1-4个微型ec2实例的Elastic Beanstalk。我不想添加除我拥有的任何其他db / storage /队列(MySQL)。
要添加,我的api服务器和工作人员是一样的。
答案 0 :(得分:0)
我遇到过用Python开发的这个解决方案:Celery
" Celery是基于分布式的异步任务队列/作业队列 消息传递。它专注于实时操作,但支持 也安排。"
可以与几个Python框架集成(Django,Pylons,...): http://docs.celeryproject.org/en/latest/getting-started/introduction.html#framework-integration
但您更喜欢Node.js ,因此您也可以将其与其他语言一起使用,它可以通过HTTP Callback(Webhooks)进行集成: http://docs.celeryproject.org/en/latest/userguide/remote-tasks.html