タスクスケジューラ周期(Cron表現式)

  • 作成者:ayuan0625
  • 編集回数:18次
  • 最終更新:ayuan0625 于 2022-01-04
  • 一.概要

    1. スケジューラタスクを設定するには、必ずタスクの実行時間を設定しなければなりません。毎日実行、二日に一度実行、または一度のみ実行など、様々な開始時間の設定をする必要があります。これは表現式で設定できます。

    2.  比較的複雑な実行頻度の設定について、主に表現式で実行頻度を設定します。下の画像の通りです。

    二.設定済み表現式

    1.スケジューラ表現式設定は、cronExpressionから設定します。タスクバーで自ずからcronExpressionを入力してもいいし、すぐ近くの[表現式設定]ボタンを押して、設定済み表現式から選んでもいいです。

    2.[事前定義表現式]をクリックして、事前定義表現式のウィンドウを開きます。文字の説明をクリックすると、上のテキストバーにcronExpressionが表示されます。[事前定義表現式を隠す]をクリックすると、事前定義表現式のウィンドウが隠されます。下の画像の通りです。

     

    3.設定済み表現式は次のとおりです:

    • 毎月最後の一日の19時50分:0 50 19 L * ?

    • 毎月最後の出勤日の19時50分:0 50 19 LW * ?

    • 毎月第四の金曜日の19時50分:0 50 19 ? * 6#4

    • 2018年9-12月の毎日の19時50分:0 50 19 * 10-12 ? 2018

    • 出勤日の朝9時と夜6時:0 0 9,18 ? * MON-FRI

    三.CronExpression表現式

    1.一つのCronExpression表現式には、6または7のフィールド(固定値または特殊な意味を持つ文字)を、スペースで分割した形からなっています。その中で、[秒、分、時間、日、月、曜日]は必須項目であり(順番を変えてはいけません)、年は選択項目であります。

      フィールド名

     入力できる数値

    入力できる文字  

      秒

    0-59  

    , - * /  

      分

    0-59  

    , - * / 

      時間

    0-23  

    , - * /   

      日

    1-31  

    , - * ? /  L W  

      月

    1-12 または JAN-DEC  

    , - * /  

      曜日

    1-7 または SUN-SAT  

    , - * ? /  L #

      年(選択)

    空 または 1970-2099  

    , - * / 

    • '*' のフィールドは、どのフィールドにも適用できます。意味:「すべて」、つまり「分」の位置における[*]は、「毎分」を意味します。

    • '?'のフィールドは、「日」または「曜日」に適用できます。意味:「不明確な数値」、例えば「水曜日」を選びたいとき、水曜日は何日なのか分からないから、[日]のフィールドを[?]にします。

    • '-' のフィールドは、どのフィールドにも適用できます。意味:「数値の範囲」、例えば[時間]のフィールドを[10-12]とすると、[10時から12時]を意味します。

    • ','  のフィールドは、どのフィールドにも適用できます。意味:「複数の数値」、例えば[曜日]のフィールドを[MON,WED,FRI]で指定すると、「月曜日、水曜日、金曜日」を意味します。

    • '/' のフィールドは、どのフィールドにも適用できます。意味:「数値の増加」、例えば[秒]のフィールドを[0/15]に設定すれば、[第0、15、30、45秒]を意味します。等差構造であり、0から一度15増加します。最大値の60以下に限ります。

      • '/'の前に[*]を入れると、ゼロから始まることを意味します。

      • どのフィールドも、開始と完了の数値を設定できます。開始・終了の数値は最大値を超えてはいけません。

    • 'L'のフィールドは、「日」または「曜日」に適用できます。意味:「Last」の縮約であり、「最後」を意味します。例えば[日]のフィールドに[L]を入れることで、[月の最終日]を意味します。[曜日]のフィールドでは、[7]または[SAT]を意味します。

      • [曜日]のフィールドで使用する場合、数字の後ろに[L]を付け加えることで「最後の〇曜日」を意味します。例えば6Lは「一か月の最後の金曜日」を意味します。(注:数字の1で日曜日を表わしますので、6は金曜日を代表しています)

    • 'W'のフィールドは、「日」に適用できます。意味:「その日に最も近い平日」、例えば[日]を[15W]に設定すると、意味は「当月15日までの平日」であります。15日が土曜日であれば、14日金曜日に開始します。15日が日曜日であれば、16日月曜日に開始します。15日が火曜日であれば、当日に開始します。

      • [日]を[1W]に設定しているとします。1日が土曜日であれば、来週の3日月曜日に開始します。つまり、スケジューラは月をまたがらない。

      • [W]は1つの日付にのみ対応しています。複数の日数に適用できません。

    • 'L'、'W'のフィールドは、'LW’の形で「日」に合わせて適用できます。意味:「当月の最後の平日」

    • '#'のフィールドは、「曜日」に適用できます。意味「当月の第〇の曜日」、例えば[6#3]は、当月の第三の金曜日を意味します(6で金曜日を表わし、#3は第三を代表します)当月に該当する日付がなければ、タスクを開始しません。例えば、[4#5]を設定すると、当月に第五の水曜日がなければ開始しません。

    注:[月]と[曜日]のフィールドは、要求を満たしていれば大文字・小文字のどちらでもかまいません。

    2.下の表にように、ここで簡単な例をあげます。

      表現式

     意味  

    0 0 12 * * ?

    毎昼十二時に始まる

    0 15 10 ? * *

    毎朝10時15分に始まる

    0 15 10 * * ?

    毎朝10時15分に始まる

    0 15 10 * * ? *

    毎朝10時15分に始まる

    0 15 10 * * ? 2005

    2005年毎朝10時15分に始まる

    0 * 14 * * ?

    毎日午後2時から2時59分まで、毎分一度

    0 0/5 14 * * ?

    毎日午後2時から2時55分まで、5分ごとに一度

    0 55/10 14,18 * * ?

    毎日午後2時55分と6時55分に始まる

    0 10,44 14 ? 3 WED

    三月毎週水曜日の14:10と14:44に始まる

    0 15 10 ? * MON-FRI

    毎週月火水木金日の10時15分に始まる

    0 15 10 15 * ?

    毎月15日の10時15分に始まる

    0 15 10 L * ?

    毎月最後の日の10時15分に始まる

    0 15 10 ? * 6L

    毎月最後の金曜日の10時15分に始まる

    0 15 10 ? * 6L 2002-2005

    2002年から2005年までの、毎月最後の金曜日の10時15分に始まる

    0 15 10 ? * 6#3

    毎月第三の金曜日の10時15分に始まる

    0 0 0 L-2 * ? *

    毎週の後ろから二日目(FineReport 10.0のみがサポートしてします。FineReport 9.0では利用不可)

     


    Attachment List


    Theme: FineReport 管理ポータル
    既に最初
    既に最後
    • いいね
    • 良くない
    • 閲覧しただけ