【发布时间】:2016-05-23 09:23:30
【问题描述】:
我有一个在 Auto Scaling Elastic Beanstalk Web 环境上运行的平台(基于 Rails 4/Postgres)。我正计划将长时间运行的任务(与第 3 方同步、发送电子邮件等)卸载到 Worker 层,这看起来很简单,可以启动和运行。
但是,我还想运行定期批处理。我已经研究过使用 cron.yml 并且调度似乎很简单,但是我尝试构建的批处理需要访问来自 Web 应用程序的数据才能工作。
有人对这样做的最佳方式有任何意见吗?是 Web 层和工作层之间的共享 RDS 数据库,还是工作层可以访问的 Web 服务?
谢谢, 丹
注意:我添加了一个额外的问题,它更广泛地描述了我的 要求,因为它让我觉得这可能不是最好的方法。 What's the best way to implement this shared batch process with Elastic Beanstalk?
【问题讨论】:
-
我只会访问 Rails 应用程序正在访问的同一个 Postgres DB。关于工作层的设置:这是我写的一个 gem,它应该可以简化流程 -> github.com/tawan/active-elastic-job
-
看起来不错,谢谢。是否有在弹性 beanstalk Web 层(数据库所在的位置)和新的工作层之间共享数据库凭据(自动生成的环境变量)的首选方式?
-
您可以将相同的环境变量添加到工作层。在您的 AWS 控制台中:选择工作人员环境 -> 配置 -> 软件配置 -> 环境属性
标签: ruby-on-rails ruby-on-rails-4 amazon-web-services amazon-elastic-beanstalk