5

RailsアプリをAWSElasticBeanstalkプラットフォームで実行しています。このプラットフォームは、AutoScalingとElasticLoadBalancingを使用して単一のEC2インスタンスを実行しています。

Elastic Beanstalkでバックグラウンドジョブを実行する方法resquedelayed_jobまたはsidekicqその他のソリューションを考えています。

Elastic Beanstalkでのバックグラウンドジョブの可能なオプションは何ですか?

4

2 に答える 2

3

Elastic Beanstalk で実行される Rails アプリケーションのバックグラウンド ジョブのソリューションとして、gem のActive Elastic Jobを作成しました。これは、Elastic Beanstalk アプリケーションのバックグラウンド タスクに使用することを目的としたElastic Beanstalkワーカー環境を利用します。

利点は次のとおりです。

  • バックグラウンド ジョブの実行に同じコード ベースを使用できます。アプリケーションの専用バージョンを分岐してワーカー環境で実行する必要はありません。
  • Elastic Beanstalk の自動スケーリング機能を利用し、
  • resqueやのようなキュー バックエンドを実行するために、外部 EC2 インスタンスまたはサービスを設定する必要はありませんsidekiq
  • Elastic Beanstalk コンテナをカスタマイズする必要はありません。
  • Elastic Beanstalk の定義済みインフラストラクチャのシンプルさを維持します。

ただし、この gem は Rails >= 4.2 アプリケーションとのみ互換性があります。

于 2016-01-03T11:27:06.190 に答える
2

バックグラウンド ジョブを開始/停止/再開する最良の方法は、これらのタスクの init スクリプトを使用することです。インスタンスの起動時に、これらの init スクリプトをサービスとしてトリガーすることができます。サービスの ElasticBeanstalk コンテナのカスタマイズの詳細については、こちらを参照してください。

完了したら、インスタンスの AMI を作成し、自動スケーリングを使用してこのカスタム AMI からインスタンスを起動することで、init スクリプトをフリーズできます。

お役に立てれば。

于 2013-02-05T09:37:30.960 に答える