spring 의 정시 작업 task Scheduler 에 대한 상세 한 소개
3624 단어 springtaskscheduler정시
spring 3.0 버 전 이후 정시 작업 도 구 를 가 져 왔 고 간단 하고 편리 하 며 파일 을 설정 하지 않 아 도 실행 상 태 를 동적 으로 바 꿀 수 있 습 니 다.cron 표현 식 으로 정시 작업 을 설정 할 수도 있 습 니 다.
실 행 된 클래스 는 Runnable 인 터 페 이 스 를 실현 해 야 합 니 다.
작업 스케줄 러 인터페이스
Task Scheduler 는 인터페이스 입 니 다.Task Scheduler 인터페이스 에서 6 가지 방법 을 정 의 했 습 니 다.
1、
schedule(Runnable task, Trigger trigger);
트리거 를 지정 하여 정시 작업 을 수행 합 니 다.CronTrigger 를 사용 하여 Cron 표현 식 을 지정 하고 정시 작업 을 수행 할 수 있 습 니 다.
CronTrigger t = new CronTrigger("0 0 10,14,16 * * ?");
taskScheduler.schedule(this, t);
2、 schedule(Runnable task, Date startTime);
구체 적 인 시간 대 를 지정 하여 정시 임 무 를 수행 하고 동적 으로 지정 한 시간 을 지정 하여 임 무 를 시작 할 수 있 습 니 다.한 번 만 실행 합 니 다.타이머 보다 훨씬 낫다.이 인 터 페 이 스 를 발 견 했 으 면 좋 았 을 텐 데...)3、
scheduleAtFixedRate(Runnable task, long period);
즉시 실행,순환 작업,실행 주기 지정(밀리초 단위)PS:지난 주기 가 끝 났 든 안 끝 났 든 다음 주기 가 되면 실행 합 니 다.
4、
scheduleAtFixedRate(Runnable task, Date startTime, long period);
지정 한 시간 부터 실행,순환 작업,간격 주기 지정(밀리초 시간 계산)PS:지난 주기 가 끝 났 든 안 끝 났 든 다음 주기 가 되면 실행 합 니 다.
5、
scheduleWithFixedDelay(Runnable task, long delay);
즉시 실행,순환 작업,간격 주기 지정(밀리초 단위)PS:지난 주기 가 끝나 면 delay 시간 을 기다 리 고 다음 주기 에 실행 합 니 다.
6、
scheduleWithFixedDelay(Runnable task, Date startTime, long delay);
지정 한 시간 부터 실행,순환 작업,간격 주기 지정(밀리초 시간 계산)PS:지난 주기 가 끝나 면 delay 시간 을 기다 리 고 다음 주기 에 실행 합 니 다.
Task Scheduler 아래 다섯 가지 실현 유형 이 있 습 니 다.
1、ConcurrentTaskScheduler
현재 스 레 드 로 작업 을 수행 합 니 다.만약 임무 가 간단 하 다 면,직접 이 종 류 를 사용 하여 집행 할 수 있다.빠 르 고 편리 하 다.
PS:이것 은 단일 라인 운행 입 니 다
public class LocTest implements Runnable {
private ConcurrentTaskScheduler tpts = new ConcurrentTaskScheduler();
private void start() {
tpts.schedule(this, new Date());
}
public void run() {
Thread ct = Thread.currentThread();
System.out.println("current id:"+ct.getId());
System.out.println("current name:"+ct.getName());
}
public static void main(String[] args) {
new LocTest().start();
}
}
2、DefaultManagedTaskScheduler현재 스 레 드 로 작업 을 수행 합 니 다.이것 은 ConcurrentTask Scheduler 의 하위 클래스 로 JNDI 지원 을 추가 합 니 다.Concurrent Task Scheduler 와 같은 용법 으로 JNDI 를 사용 하여 따로 설정 할 수 있 습 니 다.
3、ThreadPoolTaskScheduler
Task Scheduler 인터페이스의 기본 구현 클래스,다 중 스 레 드 정시 작업 수행.실행 스 레 드 풀 수 를 설정 할 수 있 습 니 다(기본 스 레 드).
PS:
4.567917.사용 하기 전에 반드시 먼저 호출 해 야 합 니 다
initialize()
[초기 화 방법]4.567917.4.567914 방법 이 있 습 니 다.실행 이 끝 난 후에 스 레 드 를 닫 을 수 있 습 니 다.4.567918.
public class LocTest implements Runnable {
private ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
private void start() {
taskScheduler.setPoolSize(10);
// ,
taskScheduler.initialize();
taskScheduler.schedule(this, new Date());
}
public void run() {
Thread ct = Thread.currentThread();
System.out.println("current id:"+ct.getId());
System.out.println("current name:"+ct.getName());
}
public static void main(String[] args) {
new LocTest().start();
}
}
4、TimerManagerTaskScheduler이것 은 사용 되 지 않 으 면 구체 적 으로 알 지 못 하고 시간 이 있 으 면 다시 보충 합 니 다.알 고 있 는 것 은 환영 합 니 다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 댓 글 을 남 겨 주 십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.