頻度を衝突させずにcronジョブをスケジュールする


0

実行するcronジョブがいくつかあります。

  1. 毎分
  2. 5分ごと
  3. 15分ごと
  4. 毎時
  5. 真夜中に

それからちょうど00:00に私は5つの仕事を同時に動かしています。

私は別の仕事を追加したいのですが、いつでも「1日1回」実行するだけです。 実際、私は「いつ」を最小のサーバーロード時間の間にしたいです。

これどうやってするの?

回答:


0

その1つの方法はこれです。

  1. 1時間に1回、目的のスクリプトを呼び出してください。
  2. スクリプトの最初の実行時に、次の名前の一時ファイルを確認します。 .runTime
  3. そのようなファイルが存在する場合
    1. それを解析して、それから24時間形式の時刻を取得します。
    2. 現在の時間が解析された時間と等しい場合
      1. を削除 .runTime 目的のスクリプトをファイル化して実行する
    3. 時間が違う場合 - 実行を中止します
  4. そのようなファイルがなく、時間が0(真夜中)の場合
    1. 0から23の間のランダムな時間を計算し、それをファイルに書き込む
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.