アプリケーションをあるサーバーにホストし、別のサーバーのジョブをキューに入れることはできますか?Rails:別のサーバーでバックグラウンドジョブを実行できますか?
可能な例:
二つの異なるEC2インスタンス、メインサーバと1とキューイングサービスを有する第二。
ホストHerokuのでアプリやキューイングサービス
でEC2インスタンスを使用することも可能ということですか?
ありがとうございます。
アプリケーションをあるサーバーにホストし、別のサーバーのジョブをキューに入れることはできますか?Rails:別のサーバーでバックグラウンドジョブを実行できますか?
可能な例:
二つの異なるEC2インスタンス、メインサーバと1とキューイングサービスを有する第二。
ホストHerokuのでアプリやキューイングサービス
でEC2インスタンスを使用することも可能ということですか?
ありがとうございます。
はい、間違いありません。私は、私が働いているところで、delayed_jobをセットアップしました。
それを動作させるための要件がいくつかあります:
、あなたは、単にサーバ(つ以上の場合、またはすべての)同じ両方のアプリケーションを持っている、とあなたがジョブを処理したい方、サーバー上の労働者を起動します。どちらのサーバーも依然としてジョブをキューに入れることができますが、実行中のワーカーのみが実際にジョブを処理します。
たとえば、interface
というサーバーと、db
のサーバーと、複数のworker
のサーバーがあります。 interface
サーバは、Apache/Passenger経由でアプリケーションを提供し、Railsアプリケーションをdb
サーバに接続します。 workers
には同じアプリケーションがありますが、Apacheは実行されていないため、httpでアプリケーションにアクセスすることはできません。一方、彼らは、遅延作業を実行している労働者をしています。一般的なシナリオでは、interface
サーバーはdb
にジョブをキューイングし、worker
サーバーでジョブを処理します。
アプリケーションの物理ファイル(添付ファイル、ログファイル、ダウンロードしたXMLなど)に頼っている場合は、S3のような解決策が必要になるでしょう。これは、個々のサーバーに実際のファイルがない可能性があるためです。たとえば、Web上のサーバーにプロファイル画像をアップロードする場合、そのファイルはそのサーバーに保存される可能性があります。プロファイルピクチャのサイズを変更する別のサーバーがある場合、イメージはワーカーサーバー上に存在しません。
もう1つの実行可能なオプションを提供するだけです.EC2内のクラウドサーバーの弾力的なファームに完全に依存するIronWorkerのような新しいワーカーサービスを使用できます。
このようにすると、ジョブの実行をキューに入れたりスケジューリングしたりできます。インフラストラクチャを気にすることなく、複数のサーバーにまたがる多数のスレッドで並列化されます。
データベースと同じ扱いですが、外部からアクセスできる必要があります。
完全開示:私はIWのビルドを手助けしました。
お返事ありがとうございます。私は今自分のサーバーを使ってそれを行う方法を理解しています。 Herokuと私のサーバーを使ってそれを行う方法はありますか? – donald
本当にHerokuが外部サーバーからデータベースに直接アクセスできるかどうかによって異なります。私は考えていない*ので、答えは "いいえ"となります。 – vonconrad
''マウント '?それは信頼できる解決策ではありませんか? – mdesantis