Java EE Web アプリケーションに取り組んでいます。@WebListener アノテーションを使用して、スケジュールされたバッチを開発しました。
@WebListener
public class BatchServlet implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
context = sce.getServletContext();
schedulerEngine = Executors.newSingleThreadScheduledExecutor();
schedulerEngine.scheduleAtFixedRate(new MyThread(), 0, 300, TimeUnit.SECONDS);
}
public class MyThread implements Runnable {
@Override
public void run() {
...... //my business logic
}
そしてそれは正しく動作します。
しかし、私の目的のために、たとえば、サーブレット内で特定のリクエストを受け取ったときに、MyThread() バッチをオンデマンドで強制する必要があります。明らかに、MyBatch スレッドを個別に呼び出すことができますが、この操作を実行するためのベスト プラクティスがいくつかあるのではないかと考えていました。