コンテンツへスキップ
uencoder

スケジューリングに cron 式を使う

cron 式は 5 つのフィールド(分、時、日、月、曜日)で定期的なスケジュールを定義します。構文、特殊文字、よくあるパターンを学びましょう。

  1. 1

    cron の構文:分 時 日 月 曜日。各フィールドは、*(任意)、特定の値(5)、範囲(1-5)、リスト(1,3,5)、ステップ(*/15 または 1-30/5)を受け付けます。例:"0 9 * * 1-5"(平日 9 時)、"*/15 * * * *"(15 分ごと)、"0 0 1 * *"(毎月 1 日の 0 時)。曜日:0=日曜、7=日曜、1-6=月曜〜土曜。

  2. 2
    Cron 式ジェネレーター →

    人間が読める説明から cron 式を生成します。スケジュール(例:「毎平日 9 時」)を指定すると、ツールが cron 式を出力します。これにより構文エラーを避けられ、cron 構文の学習にも役立ちます。

  3. 3
    Cron 式パーサー →

    cron 式をパースして、人間が読める説明、次の実行時刻、構文エラーを表示します。デプロイ前に cron 式を検証するのに役立ちます。パーサーは標準 cron、Quartz(秒と年付き)、拡張構文(@daily、@weekly)を処理します。

  4. 4

    このワークフローは SQL 向けですが、整形して文書化するという概念は cron 式にも当てはまります。cron ジョブを文書化してください。何をするのか、いつ実行されるのか、想定所要時間、アラート。cron 式は文書とともにバージョン管理してください。

よくある質問

cron と Quartz の違いは何ですか?
標準 cron は 5 フィールド(分、時、日、月、曜日)です。Quartz は 6〜7 フィールド(秒、分、時、日、月、曜日、年)です。Quartz は月の最終日(L)、第 n 曜日(#)などをサポートします。システムの crontab には標準 cron を、Java スケジューラー(Spring、Quartz)には Quartz を使ってください。ほとんどのクラウドスケジューラーは標準 cron を使います。
cron ジョブのタイムゾーンはどう扱えばよいですか?
システム cron はサーバーのタイムゾーンで実行されます。タイムゾーン対応のスケジューリングには、(1) AWS EventBridge(ルールごとにタイムゾーンをサポート)、(2) Kubernetes CronJob(1.25 以降で timeZone フィールドをサポート)、(3) スケジューラーライブラリー(node-cron の timeZone オプション)を使ってください。スケジュールは UTC で保存して表示時に変換するか、ターゲットのタイムゾーンを明示的に使ってください。夏時間に注意してください。9 時のジョブが、夏時間の移行中に 8 時や 10 時にずれることがあります。

このタスクを解決するワークフロー

Cron 式解析と JSON フォーマット
Cron 式を解析し、結果を JSON としてフォーマットする。
パイプライン
SQL フォーマットと単語統計によるドキュメント化
SQL クエリを整形し、その後フォーマットされた出力を単語統計で分析する。
パイプライン
Lorem Ipsum 生成と単語カウント
Lorem Ipsum テキストを生成し、その後単語をカウントする。
パイプライン
SQL フォーマットと構文検証
SQL クエリをフォーマットし、その後構文を検証する。
パイプライン
テキストのクリーンアップ後の単語統計分析
テキストをトリムして正規化し、その後単語/文字/行統計を計算する。
パイプライン
行の重複除去と単語カウント
行をソートして重複を除去し、その後残りの単語をカウントして簡単な在庫を得る。
パイプライン
テキストの小文字化と単語カウント
テキストのケースを正規化し、その後分析のために単語をカウントする。
パイプライン
URL 除去と単語カウント
テキストから URL を除去し、その後残りの単語をカウントする。
パイプライン
Title Case と単語カウント
Title Case に変換し、その後単語をカウントする。
パイプライン
テキストの折り返しと単語カウント
長いテキストを折り返し、その後結果の単語をカウントする。
パイプライン

関連ツール