6

200 ミリ秒ごとに開始され、単純なことを行う単純なスケジュール タスクを実行する必要があります。

Executors.newSingleThreadScheduledExecutor()JBoss でスケジュールされたエグゼキュータ サービスを取得する適切な方法はありますか?

Java EE プラットフォームでアンマネージ スレッドを生成することは推奨されないと言われています。このスレッドは管理されていないスレッドになるようです。

一方、MBeans などを宣言したくないのは、このような単純なことです。

編集

のようなものがありますがorg.jboss.resource.work.JBossWorkManager、スケジュールされた作業の例が見つかりません。

4

1 に答える 1

4

呼び出しExecutors.newSingleThreadScheduledExecutor()はひどいものではありませんが、EE コンテナーでは避けたほうがよいでしょう。Java EE 5では次を使用しますTimeoutService

@Stateless
public class TimerSessionBean implements TimerSession {
    @Resource
    TimerService timerService;

    public void startTimer() {
        Timer timer = timerService.createTimer(200, "Created new timer");
    }

    @Timeout
    public void timeout(Timer timer) {
        logger.info("Timeout occurred");
    }
}

Java EE 6 には便利な@Scheduleアノテーションがあります。

于 2012-08-24T09:50:39.240 に答える