@TargetSE(valueSE=METHODSE) @RetentionSE(valueSE=RUNTIMESE) @RepeatableSE(valueSE=Schedules.class) public @interface Schedule
このアノテーションのすべての要素はオプションです。何も指定されていない場合、永続タイマーが作成され、アプリケーションが実行されているコンテナーに関連付けられたデフォルトのタイムゾーンで毎日深夜にコールバックが発生します。
スケジュール仕様を構成する要素は 7 つあり、以下のとおりです。さらに、timezone 要素を使用して、スケジュール指定が評価されるコンテキストでデフォルト以外のタイムゾーンを指定できます。persistent 要素を使用して非永続タイマーを指定できます。info 要素を使用して、タイマーコールバックが発生したときに取得できる追加情報を指定できます。
カレンダベースのスケジュール自体を指定する要素は次のとおりです。
許容値: [0,59]
許容値: [0,59]
許容値: [0,23]
許容値:
「最終」は月の最終日を意味します
-x(x は [-7、-1] の範囲内)は、月の最終日の x 日前を意味します
曜日に "1st"、"2nd" などを適用すると、その月のその日の 1 回の出現を識別します。
許容値:
許容値:
"0" と "7" はどちらも日曜日を指します
許容値: 4 桁の暦年
各要素は、次のいずれかの形式で表される値をサポートします
Example: second = "10" Example: month = "Sep"
Example: second = "*" Example: dayOfWeek = "*"
Example: second = "10,20,30" Example: dayOfWeek = "Mon,Wed,Fri" Example: minute = "0-10,30,40"
x が "x-y" の範囲で y よりも大きい場合、範囲は "x-max, min-y" と同等です。ここで、max は対応する属性の最大値であり、min は最小値です。両方の範囲値が同じである範囲 "x-x" は、単一の値 x に評価されます。曜日の範囲 "0-7" は、"*" と同等です。Example: second = "1-10" Example: dayOfWeek = "Fri-Mon" Example: dayOfMonth = "27-3" (Equivalent to "27-Last , 1-3")
N 秒、分、または時間ごとに指定するために使用されます。式 x/y の場合、属性は、時刻 x から始まる許容値のセット内のすべての y 番目の値に制約されます。x 値は包括的です。ワイルドカード文字(*)は x 位置で使用でき、0 と同等です。インクリメントの使用は、second、minute、hour 要素内でのみサポートされています。second および minute エレメントの場合、x および y はそれぞれ [0,59] の範囲内にある必要があります。hour エレメントの場合、x と y はそれぞれ [0,23] の範囲内にある必要があります。Example: minute = "∗/5" (Every five minutes within the hour)これは:
minute = "0,5,10,15,20,25,30,35,40,45,50,55"Example: second = "30/10" (Every 10 seconds within the minute, starting at second 30)これは:
second = "30,40,50"その属性の最大値を超えると、一致する増分値のセットが停止することに注意してください。境界を越えて「ロールオーバー」することはありません。
Example : ( minute = "∗/14", hour="1,2")
これは: (minute = "0,14,28,42,56", hour = "1,2") (午前 1 時と午前 2 時の間、1 時間以内に 14 分ごと。)
次の追加ルールがスケジュール指定要素に適用されます。
dayOfMonth 要素に非ワイルドカード値があり、dayOfWeek 要素に非ワイルドカード値がある場合、dayOfMonth 値または dayOfWeek 値のいずれかに一致する日が適用されると見なされます。"Sun"、"Jan"、"1st" など)では大文字と小文字は区別されません。スケジュールベースのタイマー時間は、アプリケーションが実行されているコンテナーに関連付けられているデフォルトのタイムゾーンのコンテキストで評価されます。スケジュールベースのタイマーは、オプションでこのデフォルトを上書きし、特定のタイムゾーンに関連付けることができます。スケジュールベースのタイマーが特定のタイムゾーンに関連付けられている場合、コンテナーが実行されているデフォルトのタイムゾーンに関係なく、そのすべての時間はそのタイムゾーンのコンテキストで評価されます。
Schedule アノテーションが適用されるタイムアウトコールバックメソッドには、次のいずれかのシグネチャーが必要です。<METHOD> はメソッド名を指定します。
void <METHOD>() void <METHOD>(Timer timer)タイムアウトコールバックメソッドには、パブリック、プライベート、保護、パッケージレベルのアクセスがあります。タイムアウトコールバックメソッドは、final または static として宣言してはなりません。タイムアウトコールバックメソッドは、アプリケーション例外をスローしてはなりません。
| 修飾子と型 | オプションの要素と説明 |
|---|---|
StringSE | dayOfMonth1 か月内の 1 つ以上の日を指定します。 |
StringSE | dayOfWeek1 週間以内の 1 日以上を指定します。 |
StringSE | hour1 日のうち 1 時間以上を指定します。 |
StringSE | info タイマーに関連付けられている情報文字列を指定します |
StringSE | minute1 時間で 1 分以上を指定します。 |
StringSE | month1 年以内に 1 つ以上の月を指定します。 |
boolean | persistent 作成されるタイマーが永続的であるかどうかを指定します。 |
StringSE | second1 分以内に 1 秒以上を指定します。 |
StringSE | timezone スケジュールが評価されるタイムゾーンを指定します。 |
StringSE | year1 つ以上の年を指定します。 |
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.