cron / schedule handoff guide

cronの方言・時差・次回予定を分けて確認する

スケジュール式が読めても、実行された証拠にはなりません。方言、タイムゾーン、DST、次回予定を分けて運用票にします。

まず方言を固定する

一般的なcronは分・時・日・月・曜日の5フィールドですが、Quartz系は秒を先頭に含む6フィールドや年を含む7フィールドを使います。実行環境とライブラリを確認せずに、式だけで意味を断定しないでください。

*/15 * * * *    # 5-field: every 15 minutes; dialect and timezone still required
0 0/15 * * * ?  # Quartz-style example: seconds field and ? marker
境界確認すること
フィールド数5フィールドか、Quartzの6/7フィールドか。秒・年の有無を実行環境と照合する。
曜日日曜の0/7、名前、曜日欄と日欄の組み合わせは方言差がある。実装の仕様を確認する。
記号?LWなどはQuartz等に限られる。未対応ならrejectする。
タイムゾーンIANA名などの対象zoneを明記し、ホストの既定zoneを暗黙にしない。

時差とDSTを別に確認する

「毎日02:30」のようなローカル時刻は、DSTの開始日には存在しない、または終了日に二度現れることがあります。対象zone、適用日、実装の重複・欠落時の扱いを確認し、次回時刻を一意に断定しないでください。

次回予定はスケジューラが計算した候補です。ログ、終了コード、監視記録などの実行証拠とは別欄で扱います。

確認合格の目安
timezone式と一緒に対象zone、基準時刻、DSTの有無を渡せる。
next run「次回予定」として表示し、実行済み・成功とは表現しない。
execution evidence実行ログや監視側の証拠を別途確認する。

レビューケース

case判定確認
five-fields-localreviewable5フィールドと対象timezoneが明記され、実行環境が分かる。
dst-boundaryattentionDST境界の欠落・重複と実装の扱いを担当へ確認する。
quartz-six-fieldsdialect-check秒フィールドやQuartz記号があるため、5フィールドcronへ渡さない。
dow-sevendialect-check日曜0/7や曜日名の意味を対象実装で確認する。
unsupported-or-missing-zonereject非対応記法またはtimezone欠落は、次回予定を出さず差し戻す。

実行や秘密の取り扱い

このガイドはcronを実行せず、外部スケジューラへ接続しません。本番のコマンド、秘密、認証情報、内部ホスト名を貼り付けず、共有用には無害な例だけを使ってください。

運用票には式、方言、timezone、次回予定、実行証拠の参照先を別欄で記録します。予定時刻だけで成功を報告しません。