我有一个在自动缩放Elastic Beanstalk Web环境上运行的平台(基于Rails 4/Postgres)。我正计划将长时间运行的任务(与第三方同步,发送电子邮件等)卸载到工作层,这看起来很简单,可以启动和运行。在Elastic Beanstalk Web和工作层之间共享数据
但是,我也想运行定期批处理。我研究过使用cron.yml,并且调度看起来非常简单,但是我正在尝试构建的批处理过程需要从Web应用程序访问数据才能工作。
有没有人有任何意见这样做的最佳方式? Web和工作层之间的共享RDS数据库,还是工作层可以访问的Web服务?
感谢, 丹
注:我添加了一个额外的问题,它更广泛地介绍我的 要求,我突然想到,这可能不是最好的办法。 What's the best way to implement this shared batch process with Elastic Beanstalk?
我只会访问您的Rails应用程序正在访问的相同Postgres数据库。关于你的工作层的设置:这里是我写的宝石,它应该能够简化这个过程 - > https://github.com/tawan/active-elastic-job – Tawan
这看起来不错,谢谢。在弹性beanstalk Web层(数据库所在的位置)和新的工作层之间是否有共享数据库凭据(它是自动生成的环境变量)的首选方式? –
您可以将相同的环境变量添加到工作层。在您的AWS控制台中:选择工作环境 - >配置 - >软件配置 - >环境属性 – Tawan