Ruby on rails 在弹性Beanstalk web和工作层之间共享数据

Ruby on rails 在弹性Beanstalk web和工作层之间共享数据,ruby-on-rails,ruby-on-rails-4,amazon-web-services,amazon-elastic-beanstalk,Ruby On Rails,Ruby On Rails 4,Amazon Web Services,Amazon Elastic Beanstalk,我有一个平台(基于Rails 4/Postgres)运行在自动伸缩的弹性Beanstalk web环境上。我正计划将长时间运行的任务(与第三方同步、发送电子邮件等)卸载到工作层,这看起来很简单,可以启动并运行 但是,我也希望运行周期性批处理过程。我已经研究过使用cron.yml,调度似乎很简单,但是我试图构建的批处理过程需要访问web应用程序中的数据才能工作 有人对这样做的最佳方式有什么看法吗?web层和工作层之间的共享RDS数据库,或者工作层可以访问的web服务 谢谢, 丹 注意:我添加了一个

我有一个平台(基于Rails 4/Postgres)运行在自动伸缩的弹性Beanstalk web环境上。我正计划将长时间运行的任务(与第三方同步、发送电子邮件等)卸载到工作层,这看起来很简单,可以启动并运行

但是,我也希望运行周期性批处理过程。我已经研究过使用cron.yml,调度似乎很简单,但是我试图构建的批处理过程需要访问web应用程序中的数据才能工作

有人对这样做的最佳方式有什么看法吗?web层和工作层之间的共享RDS数据库,或者工作层可以访问的web服务

谢谢, 丹

注意:我添加了一个额外的问题,它更广泛地描述了我的 我觉得这可能不是最好的方法。


除非您需要完整的关系数据库管理系统(RDBMS),否则请考虑使用S3共享实例中的共享持久数据存储。

也考虑:

SQS是一种快速、可靠、可扩展、完全管理的消息队列 服务SQS使解耦网络变得简单且经济高效 云应用程序的组件。您可以使用SQS传输任何 数据量,在任何吞吐量级别上,都不会丢失消息或 要求始终提供其他服务


我只需要访问Rails应用程序正在访问的Postgres DB。关于工作层的设置:这是我写的一个gem,它应该可以简化过程->看起来很棒,谢谢。在弹性beanstalk web层(数据库所在的位置)和新工作层之间是否有共享数据库凭据(自动生成的环境变量)的首选方法?您可以将相同的环境变量添加到工作层。在AWS控制台中:选择工作环境->配置->软件配置->环境属性