我有一个在自动扩展Elastic Beanstalk Web环境中运行的平台(基于Rails 4 / Postgres)。我计划将长时间运行的任务(与第三方同步,发送电子邮件等)卸载到工作层,这似乎很简单,可以启动和运行。
但是,我还想运行定期批处理。我已经研究过使用cron.yml并且调度看起来很简单,但是我尝试构建的批处理过程需要从Web应用程序访问数据才能工作。
有没有人对这样做的最佳方式有任何意见? Web和工作层之间的共享RDS数据库,还是工作层可以访问的Web服务?
谢谢, 丹
注意:我已经添加了一个额外的问题,更广泛地描述了我的问题 因为我觉得这可能不是最好的方法。 What's the best way to implement this shared batch process with Elastic Beanstalk?
答案 0 :(得分:1)
除非您需要完整的关系数据库管理系统(RDBMS),否则请考虑在整个实例中使用S3进行共享持久数据存储。
还要考虑Amazon Simple Queue Service (SQS):
SQS是一种快速,可靠,可扩展,完全托管的消息队列 服务。 SQS使分离它变得简单且具有成本效益 云应用程序的组件。您可以使用SQS进行传输 在任何吞吐量级别上的数据量,不会丢失消息或 要求其他服务随时可用。