Spring 통합 TimerTask 정시 작업 스케줄링
최근 회사의 프로젝트에서 정시 임무를 사용했습니다. 본 논문은 TimerTask 정시 임무를 총괄할 것입니다. 사실 TimerTask는 실제 프로젝트에서 많이 사용되지 않습니다.
지정된 시간에 실행할 수 없기 때문에, 프로그램이 특정한 주파수에 따라 실행될 수 있을 뿐이다.
2.TimerTask
JDK에서 Timer는 타이머 클래스로 지정된 타이머 작업을 구성할 수 있습니다.
JDK에서 TimerTask는 정시 임무 클래스입니다. 이 클래스는 Runnable 인터페이스를 실현하고 추상적인 클래스입니다. 우리는 이 클래스를 계승하여 정시 임무를 실현할 수 있습니다.
/**
* TimerTask
*/
public class MyTask extends TimerTask {
@Override
public void run() {
String currentTime = new SimpleDateFormat("yyy-MM-dd hh:mm:ss").format(new Date());
System.out.println(currentTime + " ...");
}
public static void main(String[] args) {
Timer timer = new Timer();
// 1 , : task, delay, peroid
timer.schedule(new MyTask(), 2000, 1000);
}
}
셋.Spring 통합두 가지 핵심 클래스: ScheduledTimerTask, TimerFactoryBean
ScheduledTimerTask 클래스는 TimerTask에 대한 패키지로 이루어집니다. 이 클래스를 통해 이 작업에 트리거 정보를 정의할 수 있습니다.
TimerFactoryBean 클래스는 Spring에서 구성을 사용하여 트리거를 생성하고 지정된 ScheduledTimerTask bean 그룹에 Timer 인스턴스를 자동으로 생성합니다.
1. Jar 가방 도입: 스프링.jar, commons-logging.jar
2. 스케줄링 업무 클래스:
/**
*
*/
public class TaskService extends TimerTask {
private int count = 1;
public void run() {
System.out.println(" " + count + " ");
count++;
}
}
3. 핵심 구성:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="taskService" class="com.zdp.service.TaskService"></bean>
<bean id="scheduledTimerTask" class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="timerTask" ref="taskService" />
<!-- : 24*60*60*1000 -->
<!-- 1 -->
<property name="period" value="1000" />
<!-- 4 -->
<property name="delay" value="4000" />
</bean>
<bean id="timerFactoryBean" class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<ref bean="scheduledTimerTask" />
</list>
</property>
</bean>
</beans>
4. 테스트 클래스:
public class Main {
public static void main(String[] args) {
// spring
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
System.out.println("<<-------- -------- >>");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
while (true) {
try {
if (reader.readLine().equals("quit")) {
System.out.println("<<-------- -------- >>");
System.exit(0);
}
} catch (IOException e) {
throw new RuntimeException("error happens...", e);
}
}
}
}
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.