5

我在AWS Elastic Beanstalk平台上运行我的 rails 应用程序,该平台运行具有 Auto Scaling 和 Elastic Load Balancing 的单个 EC2 实例。

我想知道如何在 Elastic Beanstalk 上运行或其他一些后台作业的解决resque方案delayed_jobsidekicq

Elastic Beanstalk 上的后台作业有哪些可能的选项?

4

2 回答 2

3

我创建了一个 gem,Active Elastic Job,作为在 Elastic Beanstalk 上运行的 Rails 应用程序的后台作业的解决方案。它利用 Elastic Beanstalk工作环境,这些环境旨在用于 Elastic Beanstalk 应用程序的后台任务。

优点是:

  • 您可以使用相同的代码库来执行后台作业,无需分支应用程序的专用版本以在工作环境中运行,
  • 利用 Elastic Beanstalk 自动缩放功能,
  • 无需设置外部 EC2 实例或服务来运行队列后端,如resqueor sidekiq
  • 无需自定义 Elastic Beanstalk 容器。
  • 保持 Elastic Beanstalk 的预定义基础架构的简单性。

然而,这个 gem 只与 Rails >= 4.2 的应用程序兼容。

于 2016-01-03T11:27:06.190 回答
2

启动/停止/重新启动后台作业的最佳方式是通过这些任务的初始化脚本。您可以在启动实例时将这些初始化脚本作为服务触发。有关为服务自定义 ElasticBeanstalk 容器的更多信息,请点击此处

完成后,您可以通过为您的实例创建一个 AMI,然后通过此自定义 AMI 启动具有自动扩展功能的实例来冻结您的初始化脚本。

希望这可以帮助。

于 2013-02-05T09:37:30.960 回答