javax.ejb.Schedule その2
火曜日, 6 月 9th, 2009昨日のつづきです。
@Schedule(dayOfMonth = “1″, hour = “7″, minute = “30″)
public void hoge() {
// …
}
とすると、毎月午前7 時 30 分に hoge() メソッドが実行される。
@Schedules({@Schedule(hour = “5″),@Schedule(hour = “15″, dayOfWeek = “Wed”)})
public void hogehoge() {
// …
}
は二つのタイマーを持つ。
一つは、毎日午前 5 時に、もう一つは毎週水曜日の午後 3 時に hogehoge() メソッドを実行させます。
@Schedule アノテーションによってカレンダーを基本にタイマーを設定しているようです。
これらの機能はデフォルトでサーバーがシャットダウンし、再起動しても実行されるようです。
オプションで無効にするには下記のように persistent = false を設定します。
@Schedule(minute = “*/15″, hour = “*”, persistent = false)
public void hogehogehoge() {
// …
}
これで 15 分毎に hogehogehoge() メソッドを実行します。
ただし、サーバーがダウンし、再起動した場合は実行されません。
ちなみに stateful beans ではこのタイマーサービスを使えない(使わない方がいい)ようです。