日本語

開発者ツール · Crontab ジェネレーター

Cron と夏時間: 02:30 ジョブがスキップまたは 2 回実行される理由

· なぜそれが重要なのか

クロン タイムゾーン 夏時間

壁時計タイムラインのギャップを横切る 02:30 クロック候補
オリジナル ToolAcre ベクトル イラスト

年に 2 回、実時計が狂い、ギャップまたはオーバーラップにスケジュールされた cron ジョブが予期せぬ動作をします。この記事では、Vixie 由来の cron が何をするのか、他の crons が何をするのか、そしてそれをスケジュールする方法について説明します。

選択したゾーンにそのような実時間がない場合、プレビュー候補の欠落が発生する可能性があります

選択したタイムゾーンで時計が進むと、日付に毎日の実時間が表示されなくなることがあります。 ToolAcre は、存在しないローカル分のインスタントを返さず、次回実行リストでスキップすることでそのケースを表します。式は引き続き有効です。あるカレンダー候補をそのゾーン内の実際の瞬間に変換することはできません。

この動作は `wallClockToEpoch` に実装されており、提案されたローカル日付と時刻を変換し、結果を同じゾーンにフォーマットして戻し、すべてのコンポーネントを比較します。不一致の場合は null が返されます。 `nextRuns` は、null 候補を無視して検索を続行し、捏造された近くの時間がスケジュールと正確に一致しているかのように表示されるのを防ぎます。

2 つのイベント — 1 時間を短縮する春のフォワードと、1 時間を繰り返す秋のフォールバック

クロックの変更により、2 つの概念的なケースが作成されます。1 つは、決して発生しないウォール タイムの前方ギャップ、もう 1 つは一部のラベルが複数回発生する後方オーバーラップです。リポジトリには、将来の変更にわたって毎日の現地時間を維持するためのテストと、存在しない春時間を省略するためのテストがあります。完全な重複ポリシー テスト スイートは含まれていません。

スケジューラの実装では個別の選択を行うことができるため、その証拠の境界は重要です。この記事では、普遍的なデーモンの動作ではなく、ブラウザーのプレビュー アルゴリズムについて説明します。クロック遷移中に繰り返しタスクに依存する前に、プレビューを実行 Promise に昇格させるのではなく、ターゲット ホスト上の実際のスケジューラを読んでテストしてください。

ToolAcre は存在しない現地時間を省略します。すべての Vixie 派生デーモン ポリシーをモデル化するわけではありません

このワークブックでは、特定の Vixie 派生デーモンがジャンプ後にスキップされたジョブを実行し、重複を抑制すると主張しています。 ToolAcre は、そのプレビュー コードではどちらも実行しません。ローカル コンポーネントがラウンドトリップできない候補を省略します。デーモン パッケージは呼び出されず、キャッチアップ ポリシーもモデル化されません。したがって、これらの運用上の主張は繰り返されるのではなく修正されます。

テストされたロンドンの例では、3 月の 2026 変更の前後で 01:30 を検索します。移行日には現地分が存在しないため、返される日数は次の有効な日付になります。これは、ルート自体のリストの動作を証明します。個別にインストールされた cron プロセスが、既に保存されている行に対してどのような処理を行うかは確立されていません。

外部デーモンのワイルドカード スケジューリング動作はリポジトリの証拠の外です

スターはパーサーによって許可されるすべての値に展開されますが、その後の壁時計変換によって、特定の日付/時刻が瞬間にマップされるかどうかが決定されます。 ToolAcre には、「ワイルドカード ジョブ」用の別個の外部デーモン ルールがありません。すべての候補者は、同じカレンダー検索とゾーン変換コードを経由して移動します。

説明は純粋に文法的なままです。`* * * * *` は毎分として読み取られ、ステップ付き分フィールドはステップの文言を受け取ります。この文章では移行政策については触れられていない。ツールの計算された例には次回実行リストを使用し、キャッチアップ、再試行、または重複抑制の保証を文章だけから推測しないでください。

他の実装はこのブラウザーのプレビューから推測されません

ゾーンの実装は、ブラウザーまたはノード ランタイムによって公開される `Intl.DateTimeFormat` データに依存します。 ToolAcre は、指定された IANA ゾーン名を検証し、利用可能な場合はエンジンのサポート対象リストを提供し、UTC を含みます。 BusyBox、コンテナ オーケストレーター、またはクラウド cron 製品は検査されません。

別のスケジューラが同意しない場合は、それを方言および実行時の質問として扱います。そのバージョン、ゾーン構成、および観察された移行動作を記録します。ブラウザーのプレビューは透過的な比較として依然として役立ちますが、そのコードは、別のサービスがどのポリシーを適用するか、またはそのサービスが見逃した作業を再試行するかどうかに答えることができません。

実用的な例: 所要時間を選択し、ToolAcre が計算した候補を検査します

より安全に実行できる方法は、デプロイメント ゾーンを選択し、提案された日次式を入力し、その環境で認識されている次の移行の前後の日付を検査することです。必要な候補者が不在の場合は、別の経過時間を選択するか、ターゲットが明示的に文書化しているスケジューラ ポリシーを選択します。時間を変更した後、プレビューを再実行します。

ソースには 02:30 のプリセットが含まれていますが、プリセットは一例であり、普遍的な推奨事項ではありません。その有効性は、選択したカレンダーとゾーンによって異なります。 ToolAcre の 5 つの結果ウィンドウは、遠く離れた遷移にまたがらない場合があるため、実装の動作を監査する際には、テストで適切な開始コンテキストを選択してください。

ゾーン選択はこのプレビューの一部であり、ここではツールの動作としてのみ説明します

ワークブックの分割とは異なり、ゾーン処理はこのツールのプレビューの一部です。パネルは「次の実行を表示」と尋ね、cron を実行しているマシンがリーダーとは異なるゾーンを使用する可能性があることを警告します。ゾーンを選択すると、エクスプレッションの壁時計フィールドを維持しながら、結果として生じるインスタントが変更されます。

この選択により、ブラウザーの計算のみが構成されます。タイムゾーン ディレクティブの作成、サーバーの更新、またはコピーされた式への選択の埋め込みは行いません。隣接する展開ドキュメントで目的のゾーンを保存し、その環境で実証済みのメカニズムを使用して実際のスケジューラを構成します。

要点: リストを実行保証として扱わずに、目的のゾーンでプレビューする

次回実行リストは、開始時点、カレンダー演算、およびブラウザー ゾーン データの 5 つのフィールドからのモデル出力です。これは、存在しない時間や偶発的な時間の変更を検出するのに役立ちます。デーモンのトレースも、コマンドが実行された証拠も残りません。

プレビューを使用して危険な経過時間を特定し、移行境界でターゲット スケジューラを確認します。 ToolAcre の擁護できる約束は狭いです。毎日の仕事は、選択された現地時間がある場合はその時間に留まり、存在しない現地候補は省略されます。それ以降はすべて、展開されたシステムに属します。