@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 | dayOfMonth 1 か月内の 1 つ以上の日を指定します。 |
StringSE | dayOfWeek 1 週間以内の 1 日以上を指定します。 |
StringSE | hour 1 日のうち 1 時間以上を指定します。 |
StringSE | info タイマーに関連付けられている情報文字列を指定します |
StringSE | minute 1 時間で 1 分以上を指定します。 |
StringSE | month 1 年以内に 1 つ以上の月を指定します。 |
boolean | persistent 作成されるタイマーが永続的であるかどうかを指定します。 |
StringSE | second 1 分以内に 1 秒以上を指定します。 |
StringSE | timezone スケジュールが評価されるタイムゾーンを指定します。 |
StringSE | year 1 つ以上の年を指定します。 |
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.