0

今日私を悩ませている簡単な質問です。私は 5 つのサーバーを所有しており、すべてがまったく同じイメージを持ち、ロード バランサーの背後で実行されています。これらのサーバーでプロセスの重い cron を 30 分ごとに実行したいと考えています。

リソースを大量に消費し、すべての着信接続を 30 秒間ブロックするため、各マシンに cron を配置したくありません。さらに、cron を 1 台のマシンに配置したくはありません。冗長性を確保し、確実に実行できるようにするためです。

これに対する私の考えられる解決策は、cron をトリガーする URL にアクセスするだけで、cron を実行するリモート サービスを用意することです。現時点で最も実現可能性が高いと思います。

他にどのようなソリューションが利用できるかについて、私は本当に興味があります。

御時間ありがとうございます!

4

1 に答える 1

1

5 台のマシンで時間をずらした cron ジョブを設定すると、5 台のマシンのそれぞれで 2.5 時間ごとに実行されます。おそらく最もクリーンな方法は、ジョブを 30 分ごとに実行するようにスケジュールし、ジョブ自体を、現在の時刻とジョブが実行されているマシンに応じて条件付きで実行されるスクリプトにすることです。

または、ある種のバッチ スケジューリング システムがある場合は、バッチ ジョブを送信する 1 つのシステムで cron ジョブを実行し、スケジューリング システムに使用するサーバーを選択させることができます。これには、バッチ システムが適切に機能していれば、サーバーの 1 つがダウンしてもジョブを実行できるという利点があります。バッチ システムを適切に使用できるようにするには、cron ジョブでいくつかの環境変数を設定する必要があります。

于 2012-05-28T20:20:20.203 に答える