Archive for 6 月 9th, 2009

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 ではこのタイマーサービスを使えない(使わない方がいい)ようです。

Hatena タグ: