試行錯誤したソリューションを使用しようとします。Unix Cron テーブルソリューション。このソリューションは、Hudson/Jenkins などの他の多くのツールでも使用されています。
ウィキペディアより。
* * * * * 実行するコマンド
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ │
│ │ │ └───── 曜日 (0 ~ 7) (0 または 7 は日曜日、または名前を使用)
│ │ │ └────────── 月 (1 - 12)
│ │ └─────────────── 日 (1 - 31)
│ └──────────────────── 時間 (0 - 23)
└──────────────────────────分(0~59)
また、エントリのショートカット名も使用できます。
エントリの説明と同等
@yearly 1 年に 1 回、1 月 1 日の午前 0 時に実行 0 0 1 1 *
@毎年
@monthly 毎月 1 回、月初の午前 0 時に実行 0 0 1 * *
@weekly 週に 1 回、日曜日の午前 0 時に実行 0 0 * * 0
@daily 1 日 1 回午前 0 時に実行 0 0 * * *
@hourly 1 時間に 1 回、正時に実行 0 * * * *
ここから、次のテーブル デザインが得られます。
taskID cronExpression preDefinedDefinition
1 30 * * * * ヌル
2 0 * * * * @毎時
3 …………
@Timothy Britt は、このソリューションは 1 回限りのオフを考慮していないと述べました。それは本当です。Linux や Unix にもatという名前のコマンドがあります。エントリを別のファイルに保存し、別のデーモンがこのファイルを監視しているようです。このテーブルに 1 回限りのジョブを含めたい場合。ブール列 OneTimeOnly を追加する場合があります。または、1 回限りのジョブのみを含む別のテーブル。