개발 및 테스트 도구의 응용 프로그램 배경에서 동료들이 복잡한 비즈니스 계산 로직을 포함하여 로그 처리 또는 데이터 정리를 수행하기 위해 시간이 정해진 작업을 수행해야한다고 말하는 경우가 많습니다. 시간이 정해진 작업을 선택할 때 어떻게 빠르게 구현하고 더 적합한 방법을 선택할 수 있습니까? 여기에서 예정된 작업을 구현하기위한 몇 가지 방법을 수집하고 구성했습니다. 방금 예정된 작업을 시작한 학생들이 도울 수 있기를 바랍니다. 잘못된 글을 수정하십시오.
Java 기본 타이밍 작업을 요약하는 세 가지 방법이 있습니다.
1.1 스레드를 만들고 while 루프로 실행하고 수면 방법을 통해 타이밍 작업의 효과를 달성하십시오.
1.2 타이머와 타이머 스탁 사용은 첫 번째 방법과 비교하여 다음과 같은 이점이 있습니다.
1.3 ScheduleDexecutorService는 java.util.concurrent의 동시 공구 클래스로 소개됩니다. 이것은 이상적인 시간이 지정된 작업 구현 방법입니다. 이전 두 가지 방법과 비교하여 다음과 같은 이점이 있습니다.
스프링 시간이 지정된 작업을 요약하는 세 가지 방법이 있습니다.
2.1 ScheduledTimertask : Spring의 ScheduledTimertASK는 타이머 작업의 실행주기를 정의합니다. 불행히도, 작업 실행 빈도를 지정할 수 있지만 실행 시점을 정확하게 지정할 수는 없으므로 작업 예약을 위해 두 번째 쿼츠를 사용해야합니다.
스프링 구성 파일로 선언 된 비즈니스 작업을 만듭니다.
스프링 구성 파일에서 ScheduledTimertask를 구성하고 사용자 정의 작업 인스턴스를 연결하십시오.
타이머 시작, Spring 's TimerFactoryBean은 타이밍 작업을 시작할 책임이 있습니다.
2.2 석영 사용 :
우선, 평소와 같이 비즈니스 로직 작업을 정의합니다.
봄에 작업 예약의 트리거 방법을 선언하고 구성
여기에는 석영에 대한 두 가지 유형의 작업 트리거가 있습니다.
org.springframework.scheduling.quartz.simpletriggerbean
org.springframework.scheduling.quartz.crontriggerbean
첫 번째 SimpletriggerBean은 한 번에 한 번씩 한 번씩 실행하는 것과 같은 특정 주파수에서 호출 작업 만 지원합니다.
<bean id = "simpleptrigger"> <속성 이름 = "jobDetail"ref = "myJob" /> <속성 이름 = "startDelay"value = "0" /> <!-디스패치 팩토리가 인스턴스화 된 후 0 초 후에 디스패치가 시작됩니다.> <property name = "repeatinterval"value = "2000"/> <!-- < /bean>.
두 번째 유형 의 Crontriggerbean은 위에서 구성한 것처럼 매일 12:00에 한 번 실행하는 등 지정된 시간에 한 번 실행하는 것을 지원합니다.
디스패치 공장을 구성하십시오
org.springframework.scheduling.quartz.schedulerfactorybean, 코드는 위와 같습니다.
응용 프로그램을 시작하십시오
2.3 스프링 작업 사용
Spring의 자체 시간이 지정된 작업 도구 인 Spring Task는이를 가벼운 석영과 비교할 수 있으며 사용하기가 매우 간단합니다. 스프링 관련 패키지를 제외한 추가 패키지가 필요하지 않으며 두 가지 유형의 주석 및 구성 파일을 지원합니다.
1 단계 : 작업 클래스 작성; TaskJob, method job1- 코드의 두 번째 단계 생략 : 스프링 구성 파일 헤더에서 네임 스페이스 및 설명 추가
<beans xmlns = "http://www.springframework.org/schema/beans"xmlns : task = "http://www.springframework.org/schema/task"xsi : schemalocation = "http://www.springframwork.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd ">
3 단계 : 스프링 구성 파일에서 특정 작업을 설정합니다
<작업 : 예약 된 태스크> <작업 : 예약 된 ref = "taskJob"method = "job1"cron = "0 * * * *?"/> </task : scheduled-tasks> <context : component-scan base-package = "com.alibaba.mytask"/>
설명 : REF 매개 변수는 작업 클래스를 지정하고,이 방법은 실행 해야하는 메소드, CRON 및 CRONEXPRESSION 표현식을 지정하며, 특정 쓰기 방법은 여기에 소개되지 않으며 <Context : Component-Scan Base-Package = "Com.alibaba.mytask" /> Spring Scan Annotation이 사용됩니다.
위의 내용은이 기사에 관한 모든 것입니다. 모든 사람의 학습에 도움이되기를 바랍니다.