Tomcat은 Java 웹 애플리케이션 서버이며, 스케줄링 작업(예약된 작업)을 설정하는 방법을 제공합니다. 이를 통해 정기적으로 반복되거나 일정 시간마다 실행되는 작업을 자동화할 수 있습니다.
1. Java Timer 및 TimerTask 클래스 사용
Java Timer 및 TimerTask 클래스는 스케줄링 작업을 설정하는 가장 간단한 방법 중 하나입니다. 아래의 예제 코드를 참조하세요.
import java.util.Timer;
import java.util.TimerTask;
public class MyTask extends TimerTask {
@Override
public void run() {
// 스케줄링 작업을 수행할 코드 작성
}
}
public class Main {
public static void main(String[] args) {
Timer timer = new Timer();
int delay = 1000; // 작업 시작까지의 지연 시간 (밀리초)
int period = 5000; // 작업 간격 (밀리초)
timer.scheduleAtFixedRate(new MyTask(), delay, period);
}
}
위의 예제에서 MyTask
클래스는 TimerTask
클래스를 상속받아 run
메서드를 구현합니다. run
메서드 안에는 스케줄링 작업을 수행할 실제 코드를 작성하면 됩니다.
Main
클래스에서 Timer
객체를 생성한 후 scheduleAtFixedRate
메서드를 사용하여 MyTask
인스턴스를 주기적으로 실행하도록 설정합니다. delay
매개변수는 첫 번째 작업이 실행되기까지의 지연 시간을 설정하고, period
매개변수는 작업 간격을 설정합니다.
2. Cron 표현식 사용
Cron 표현식은 Unix 및 Linux 시스템에서 널리 사용되며, 특정 시간에 작업을 예약하기 위해 사용됩니다. Tomcat에서도 Cron 표현식을 사용하여 스케줄링 작업을 설정할 수 있습니다.
Tomcat의 context.xml
파일에서 Cron 표현식을 사용하여 스케줄링 작업을 설정하는 예제를 아래에서 확인할 수 있습니다.
<Context>
<!-- 기타 설정 -->
<Listener className="org.apache.catalina.core.StandContextListener" />
<Listener className="org.apache.catalina.core.StandardContextUser" />
<Manager className="org.apache.catalina.session.StandardManager">
<!-- 스케줄링 작업 설정 -->
<BackgroundProcess delay="60000" checkInterval="1000" maxIdleBackup="1" schedulerProvider="org.apache.catalina.session.StoreBackupSchedulerProvider">
<Scheduler className="org.apache.catalina.session.StandardStoreBackupScheduler" maxIdleBackup="1" checkIntervalSeconds="60" maxActiveSessions="1" />
</BackgroundProcess>
</Manager>
<!-- 기타 설정 -->
</Context>
위의 예제에서 BackgroundProcess
엘리먼트는 스케줄링 작업을 설정하는 역할을 합니다. delay
속성은 작업이 실행되기까지의 지연 시간을 설정하고, checkInterval
속성은 작업 간격을 설정합니다.
결론
Tomcat에서 스케줄링 작업을 설정하는 방법은 다양합니다. Java Timer 및 TimerTask 클래스 또는 Cron 표현식을 사용하여 작업을 예약할 수 있습니다. 적절한 방법을 선택하여 웹 애플리케이션의 요구에 맞게 스케줄링 작업을 설정하세요.