TIBCO EBX® は、プログラムによるタスクスケジュール機能を提供します。
競合やデッドロックを回避するために、タスクは単一のキューでスケジュールされます。
スケジュールとタスクの宣言は、[管理] 領域で [タスクスケジューラ] を選択することによって行われます。
スケジュール:「cron 式」を使用してスケジュールを定義します。
タスク:タスクインスタンスとその実行用のユーザープロファイルのパラメーター化など、タスクを構成します。
スケジュールされたタスク:タスクスケジュールのアクティブ化/非アクティブ化を含む現在のスケジュール。
実行レポート:タスクがトリガーされた直後に表示される、スケジュールされた各タスク実行のレポート。レポートには、タスク定義で使用可能になったときに、実行中のタスクを中断、一時停止、または再開するアクションが含まれます。
(Quartz スケジューラドキュメントの抜粋)
タスクスケジューラは「cron 式」を使用して、「毎週月曜日から金曜日の午前 8 時」や「毎月最終金曜日の午前 1 時 30 分」などの起動スケジュールを作成できます。
cron 式は、空白で区切られた 6 つまたは 7 つのフィールドで構成される文字列です。フィールドには、そのフィールドに許可されている特殊文字のさまざまな組み合わせとともに、許可されている任意の値を含めることができます。フィールドは次のとおりです。
フィールド名 | 必須 | 許容値 | 許可されている特殊文字 |
---|---|---|---|
Seconds | はい | 0-59 | , - * / |
Minutes | はい | 0-59 | , - * / |
Hours | はい | 0-23 | , - * / |
Day of month | はい | 0-31 | , - * ? / L W |
Month | はい | 1‐12 または JAN-DEC | , - * / |
Day of week | はい | 1-7 または SUN-SAT | , - * ? / L # |
Year | いいえ | 空、1970-2099 | , - * / |
cron 式の単純なフォーマット: "0 * * * * * ? "
または、より複雑なフォーマット:"0/5 14,18,3-39,52* ? JAN、MAR、SEP MON-FRI 2002-2010"
有効な文字と月と曜日の名前は大文字と小文字を区別しません。MON は mon と同じです。
cron 式は、空白で区切られた 6 つまたは 7 つのフィールドで構成される文字列です。フィールドには、そのフィールドに許可されている特殊文字のさまざまな組み合わせとともに、許可されている任意の値を含めることができます。フィールドは次のとおりです。
* ("すべての値") - フィールド内のすべての値を選択するために使用されます。たとえば、[Minutes] フィールドの 「*」 は「毎分」を意味します。
? ('特定の値なし") - 文字が許可されている 2 つのフィールドの一方に何かを指定する必要があるが、もう一方には指定する必要がない場合に役立ちます。たとえば、トリガーを特定の日付 (たとえば、10 日) に起動したいが、曜日が何であるかは気にしない場合は、日付フィールドにに「10」、曜日フィールドに「?」を入力します。説明については、以下の例を参照してください。
- - 範囲を指定するために使用されます。たとえば、時間フィールドの「10-12」は「時間 10、11、および 12」を意味します。
, - 追加の値を指定するために使用されます。たとえば、曜日フィールドの「MON,WED,FRI」は「月曜日、水曜日、金曜日」を意味します。
/ - 増分を指定するために使用されます。たとえば、秒フィールドの「0/15」は「秒 0、15、30、および 45」を意味します。また、秒フィールドの「5/15」は「秒 5、20、35、および 50」を意味します。「」文字の後に「/」を指定することもできます。この場合、「」は、「/」の前に「0」を付けることと同じです。日フィールドの「1/3」は、「月の初日から 3 日ごとに起動する」ことを意味します。
L ("last") - 許可されている2つのフィールドのそれぞれで異なる意味を持ちます。たとえば、day-of-month フィールドの値「L」は「月の最後の日」を意味します。うるう年以外の場合は 1 月の 31 日目、2 月の 28 日目です。曜日フィールドで単独で使用される場合、それは単に「7」または「SAT」を意味します。ただし、曜日フィールドで別の値の後に使用する場合は、「その月の最後の xxx 日」を意味します。たとえば、「6L」は「その月の最後の金曜日」を意味します。「L」オプションを使用する場合、混乱する結果が得られるため、リストまたは値の範囲を指定しないことが重要です。
W ("weekday") - 指定された日に最も近い平日 (月曜日から金曜日) を指定するために使用されます。たとえば、day-of-month フィールドの値として「15W」を指定した場合、その意味は「その月の 15 日に最も近い平日」です。したがって、15 日が土曜日の場合、トリガーは 14 日金曜日に起動します。15 日が日曜日の場合、トリガーは 16 日月曜日に起動します。15 日が火曜日の場合、15 日火曜日に起動します。ただし、曜日の値として「1W」を指定し、1 日が土曜日の場合、トリガーは 3 日の月曜日に起動します。これは、月の日の境界を超えて「ジャンプ」しないためです。「W」文字は、曜日が 1 日であり、範囲や日のリストではない場合にのみ指定できます。
「L」文字と「W」文字を日フィールドで組み合わせて「LW」を生成することもできます。これは「月の最後の平日」に変換されます。
# - 月の「n 番目」の曜日を指定するために使用されます。たとえば、曜日フィールドの「6#3」の値は、「その月の第 3 金曜日」を意味します (6 日目=金曜日、「#3」=月の第3金曜日)。その他の例:「2#1」=その月の第1月曜日、「4#5」=その月の第 5 水曜日。「#5」を指定し、その月に指定された曜日が 5 つない場合、その月にはトリガーが起動しないことに注意してください。
式 | 定義 |
---|---|
0 0 12** ? | 毎日午後 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 0/5 14,18** ? | 毎日午後 2 時から午後 2 時 55 分まで 5 分ごとに起動し、午後 6 時から午後 6 時 55 分まで 5 分ごとに起動します。 |
0 0-5 14** ? | 毎日午後 2 時から午後 2 時 5 分まで毎分起動します。 |
0 10,44 14 ? 3 WED | 3 月の毎週水曜日の午後 2 時 10 分と午後 2 時 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 年、2003 年、2004 年、および 2005 年の間、毎月最終金曜日の午前 10 時 15 分に起動します。 |
0 15 10 ? *6#3 | 毎月第 3 金曜日の午前 10 時 15 分に起動します。 |
0 0 12 1/5* ? | 毎月 1 日から 5 日おきの午後 12 時 (正午) に起動します。 |
0 11 11 11 11 ? | 毎年 11 月 11 日午前 11 時 11 分に起動します。 |
曜日および日付フィールドの「 ? 」および「*」の影響に注意してください。
曜日と日付の両方の値を指定するためのサポートは完全ではありません (現在、これらのフィールドの 1 つで「?」文字を使用する必要があります)。
居住する地域で「夏時間」の変更が発生する朝の時間帯に起動時間を設定する場合は注意が必要です (米国の地域では、通常、午前 2 時の前後の時間になります。時間のずれによりスキップまたは時間が戻るか進むかに応じて繰り返します。
EBX® スケジューラには、いくつかの事前定義されたタスクが付属しています。
スケジューラ Java API を使用して、カスタムのスケジュールされたタスクを追加できます。
スケジュールとタスクの宣言は、[管理] 領域で [タスクスケジューラ] を選択することによって行われます。
ユーザーはタスク定義に関連付けられている必要があります。このユーザーは、タスクを実行するセッションを生成するために使用されます。
ユーザーは認証されず、パスワードは必要ありません。結果として、ディレクトリにパスワードが設定されていないユーザーは、スケジュールされたタスクの実行にのみ使用できます。
カスタムタスクは、JavaBean 仕様 (ゲッターとセッター) を使用してパラメーター化できます。
サポートされているパラメータータイプは次のとおりです。
java.lang.boolean
java.lang.int
java.lang.Boolean
java.lang.Integer
java.math.BigDecimal
java.lang.String
java.util.Date
java.net.URI
java.net.URL
パラメーター値は XML 形式で設定されます。