タスク - カスタム オプション
タスクを作成する場合、[カスタム] オプションを使用すると、タスクのスケジュールを柔軟に設定できます。適切に機能するタスクを作成するには、それぞれの項目である [フィルター] と [増分] の構文に精通していることが重要です。このトピックでは、[カスタム] スケジュールを使用する場合のオプションについて詳しく説明します。
フィルター
フィルターとして設定するのは、タスクをトリガーできる場合であり、その逆ではありません。フィルターはタスクの条件を定義します。
フィルターの既定の構文は「* * - * * * * *」です。各位置の間以外に、フィルター内にスペースを入れないでください。スペース文字は位置間の区切り文字として使用され、スペース文字を挿入すると、フィルターでエラーが発生する可能性があります。
位置
左から右 (最初の位置は 0)、各位置はここで説明されています。
位置 0 - Minute
凡例: 1-60。 「*」 = すべて
タスクをトリガーできる時間の分数 (0〜60)。
位置 1 - Hour
凡例: 1-24。 「*」 = すべて
タスクをトリガーできる 1 日の時間 (1〜24)。
位置 2 - WeekDayPrefix
凡例: 1-4。「¤」 = 最後。「-」 = なし
WeekDayPrefix はプレフィックスを追加することで WeekDay と連携します。WeekDayPrefix を使用すると、特定の月の最後の (¤) 金曜日、または特定の月の最初の (1) 土曜日のみ、タスクをトリガーできることを指定できます。
構文: Position 3 - WeekDay
凡例: 0-60-6 (日曜日は0)
タスクをトリガーできる曜日。
位置 4 - WeeklyInterval
凡例: 整数。「*」 = すべて
タスクは n: 週ごとにトリガーできます。ここで、n はこの位置に設定された数値です。
位置 5 - DayOfMonth
凡例: 1-31。「*」 = すべて。「¤」 = 最後
タスクをトリガーできる月の日にち。最終 (¤) を使用すると、タスクは月の最終日にトリガーされ、月 (およびうるう年) に応じて動的にチェックされます。
位置 6 - Month
凡例: 1-12。 「*」 = すべて
タスクをトリガーできる年の月。
位置 7 - MonthlyInterval
凡例: an integer。 「*」 = すべて
タスクをトリガーできるようになるまでに経過する必要のある月数。
Minute、Hour、WeekDay、DayOfMonth、Month の場合、ハイフン (-) を使用した構文を使用して、「From - To」を指定できます。WeekDayPrefix、WeeklyInterval、MonthlyInterval の場合、フィルターで使用する各文字を指定する必要があります。このオプションは、Minute、Hour、WeekDay、DayOfMonth、Month でも使用できます。
例: 各時間の最初の 15 分間のみタスクを許可する必要があります。最初の位置に「1-15」または「1,2,3,4,5,6,7,8,9,10,11,12,13,14,15」を入力できます。
増分
既定:0 0 0 0
既定の増分、つまり「0 0 0 0」が使用されている場合、タスクは 1 回だけトリガーされます。
ここでは、左から右 (最初の位置は 0) の各位置について説明します。
位置 0 - Minutes
増分する分数。
位置 1 - Hours
増分する時間数。
位置 2 - Days
増分する日数。
位置 3 - Weeks
増分する週数。
一般的なガイドライン
-
1 時間に 1 回よりも高い頻度の 1 時間ごとのタスクでは、Minutes を適切な数値に設定する必要があります。
-
1 時間に 1 回以下の頻度の 1 時間ごとのタスクでは、Hours を適切な数値に設定する必要があります。
-
毎日のタスクでは、Days が適切な数値に設定する必要があります。
-
毎週または毎月のトリガーは、毎日の評価に基づいているため (毎週木曜日と土曜日に 4 週間ごとに実行する、または毎月 5 日、10 日、15 日に実行するなど)、フィルターが存在する場合は Days を適切な数値に設定する必要があります。
-
フィルターが存在しない場合、増分はタスクがトリガーされる頻度と一致する必要があります。
例
タスクを設定する方法の例をいくつか示します。
特定の時間と分
前提: タスクは 11.15 から 11.59 (任意の日) の間にのみトリガーされます。
次のフィルターでは、1 年の特定の日の 11.15 から 11.59 の間にのみタスクをトリガーできます。
フィルター:「15-59 11 - * * * * *」
説明: 位置 0 は「15-59」です。これは、それらの分の間のみトリガーされることを意味します。
位置 1 は「11」です。これは、その時間にのみトリガーされることを意味します。
このタスクの増分は、達成する内容に基づいていますが、落とし穴があります。特に、タスクをスケジュールしていて、開始時刻が 11.15〜11.59 の範囲外、例えば 12.15 で、増分が一度に 1 日進むように設定されている場合、このタスクはトリガーされません。ほとんどの場合、増分は n時間ごとまたは n分ごとである必要があります。
WeekDayPrefix の使用
前提: タスクは、毎月第 1 月曜日にのみトリガーする必要があります。
フィルター:「* * 1 1 * * * *」
説明: 位置 2 は「1」に設定されています。これは、指定された曜日の最初の日が許可されることを意味します。位置 3 は「1」に設定されています。これは、このタスクに許可されるのは月曜日 (0 は日曜日) のみであることを意味します。
このタスクは 1 日、つまり「0 0 1 0」ずつ増加する必要があります。
月の特定の日付
ケース 1
前提: 毎月 1 日に実行します。
フィルター: * * - * * 1 * *
説明: 位置 5 は「1」に設定されています。これは、このタスクに許可されるのは特定の月の 1 日目のみであることを意味します。
このタスクは 1 日、つまり「0 0 1 0」ずつ増加する必要があります。
ケース 2
前提: 毎月最終日に実行します。
フィルター:* * - * * ¤ * *
説明: 位置 5 は「¤」に設定されています。これは、このタスクに許可されるのは特定の月の最終日のみであることを意味します。
このタスクは 1 日、つまり「0 0 1 0」ずつ増加する必要があります。
ケース 3
前提: 毎年最終日に実行します。
フィルター:「* * - * * ¤ 12 *」
説明: 位置 5 は「¤」に設定されています。これは、このタスクに許可されるのは特定の月の最終日であることを意味します。位置 6 は「12」に設定されています。これは、このタスクが許可されるのは 12 か月目 (12 月) のみであることを意味します。
このタスクは 1 日、つまり「0 0 1 0」ずつ増加する必要があります。
特定の曜日
前提: 毎週月曜日と水曜日に実行します。
フィルター:「* * - 1,3 * * * *」
説明: 位置 4 は「1,3」に設定されています。これは、このタスクに許可されるのは月曜日と水曜日のみであることを意味します (0 は日曜日)。
このタスクは 1 日、つまり「0 0 1 0」ずつ増加する必要があります。
WeekDayPrefix、WeekDay、Month の使用
前提: 隔月で最後の金曜日に実行します。
フィルター:「* * ¤ 5 * * 1,3,5,7,9,11 *」
説明: 位置 3 は、位置 4 で指定された最後の曜日を意味する「¤」に設定されています。位置 4 は、このタスクに許可されるのは金曜日 (日曜日は 0) であることを意味する「5」に設定されています。合わせて「最後の金曜日」と読みます。位置 6 は「1,3,5,7,9,11」に設定されています。これは、このタスクが許可されるのはそれらの月のみであることを意味します。
このタスクは 1 日、つまり「0 0 1 0」ずつ増加する必要があります。