1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

フィールド構成(標準5フィールド形式)

分 時 日 月 曜日

例: 50 6 * * 1-5

フィールド 意味
50 50分
6 6時
* 指定なし(毎日)
* 指定なし(毎月)
曜日 1-5 月〜金(1=月曜, 7=日曜)

平日6:50に実行


基本ルール:5フィールドは基本AND結合

分==X AND 時==Y AND 日==Z AND 月==W AND 曜日==V

例外ルール:「日」と「曜日」だけはOR判定になりうる

両方が * 以外の具体的な値のとき、この2フィールドの間だけOR扱いになる。

例: 30 11 9 3 4

曜日
30 11 9 3 4(木)

論理式:

分==30 AND 時==11 AND 月==3 AND (日==9 OR 曜日==4)

→「3月9日(何曜日でも)」または「3月の毎週木曜日」で発火。
「3月9日が木曜日の年だけ」という意味にはならない。

例: 50 6 * 4 1-5(「日」が * のケース)

「日」が * なのでOR特例は発動せず、単純に絞り込み条件から除外されるだけ。

分==50 AND 時==6 AND 月==4 AND 曜日 in {月〜金}

4月中の平日(土日を除く)、毎日6:50に実行


結論

  • 5フィールドは基本すべてAND
  • 「日」と「曜日」の両方に具体的な値が入っている場合だけ、その2つの間はOR
  • どちらかが * なら、* でない方の条件だけで絞られる(ORは発生しない)
  • AWS(EventBridge/Auto Scalingのスケジュール式)では、このOR挙動による事故を防ぐため、日と曜日のどちらか一方は必ず ? にするというルールが課されている
  • 「1回だけ実行したい」場合は、cronでゴリ押しするより開始日=終了日にする等、単発スケジュールの仕組みを使う方が素直
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?