My Railsアプリケーションには、画像のサイズ変更やS3へのアップロードなどのバックグラウンドプロセスに負荷がかかる多数のタスクがあります。私はdelayed_jobを使ってこれらのプロセスを管理しています。delayed_jobバックグラウンドジョブが1台のサーバーで多すぎるCPUを消費するのを防ぐ
これらのプロセス、特にGhostscriptを使用したPDFのサムネイルとImageMagickを使用したイメージのサイズ変更は、CPUを大量に消費し、CPU時間を100%消費することがあります。これらのジョブは、Webアプリケーション自体と同じ(RedHat Linux)サーバー上で実行されているため、DBもWebアプリケーションが応答しなくなる可能性があります。
解決策の1つは、バックグラウンドジョブのみを実行する別のサーバーを取得することです。私はこれが最適な解決策だろうと思いますか?しかし、これは即座にできることではないので、何らかの理由でバックグラウンドジョブをより低いオペレーティングシステムの優先順位で実行させることが可能かどうか、またCPUサイクルを消費することができるかどうかは疑問です。
感謝しています。
ボーナスポイント誰もがカピストラーノ/ wのdelayed_job_argsを使用して、これを把握することができます。 –
これは 'delayed_job_args'を使用していませんが、これでジョブが完了します:http://stackoverflow.com/a/9928720/359957 –