JAVA

Jsp 주기적으로 특정 메소드 호출하기

인생마린 2021. 5. 22. 11:07
반응형

Scheduler.java

package controller.listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class Scheduler implements ServletContextListener {
    private volatile ScheduledExecutorService executor;

    public void contextInitialized(ServletContextEvent sce)
    {
        executor = Executors.newScheduledThreadPool(2);
        executor.scheduleAtFixedRate([실행시킬메소드], 0, 3, TimeUnit.MINUTES);
    }

    public void contextDestroyed(ServletContextEvent sce)
    {
        final ScheduledExecutorService executor = this.executor;

        if (executor != null)
        {
            executor.shutdown();
            this.executor = null;
        }
    }
}

web.xml에 자신이 만든 클래스를 추가해줍니다.

<!-- configure the context listener -->
<listener>
   <listener-class>controller.listener.Scheduler</listener-class>
</listener>

 

contextInitialized는 서블렛 서버 시작시 호출 됩니다. 거기에 스케줄러를 호출해 3분마다 스케줄을 실행할 수 있습니다.

반응형