SpringBoot 사용 타이머 사용 방법 CRON 매개 변수를 설계하기 위해 @SCHEDULED 주석 추가
package com.clsystem.comm; import org.springframework.scheduling.annotation.scheduled;/** * 2017-11-10에 푸딩에 의해 생성되었습니다. (체크인 레코드 타이밍 작업) */ @componentpublic 클래스 Clocktiming {/** * timer */@scheduled (cron =) 0 *? ")). // 비즈니스 로직}}동적 타이머의 구현은 또한 SchedulingConfigurer 클래스 구현 방법을 상속하기에 매우 간단합니다.
패키지 com.clsystem.comm; import com.clsystem.util.dateutil; import org.springframework.beans.factory.annotation.autowired; import org.springframework.scheduling.trigger; import org.springframework.scheduling.triggercontext; org.springframework.scheduling.annotation.schedulingconfigurer; import org.springframework.scheduling.config.scheduledtaskregistrar; import org.springframework.scheduling.support.crontrigge; import org.springframework.stereotype.comportopport.compontor.component; java.util.calendar; import java.util.date;/*** 2017-11-15 년 푸딩에 의해 만들어졌습니다. (동적 타이머는 체크인 10 분 전에 메시지를 푸시하는 데 사용됩니다) (! Alarm Clock) */ @ComponentPublic Class DynamicScheduledTask 구현 SchedulingConfigurer {@autowired private checksystemmapper CheckSystemMapper; @override public void configuretasks (scheduledtaskregistrar taskregistrar) {taskregistrar.addtriggertask (new runnable () {@override public void run () {// 비즈니스 로직 시스템.out.out.println ( "reminder check-in")}, new trigger () {@overridgecution attet} triggerContext) {// 다음 타이머 정수 날짜 = dateUtil.getDay (); // 오늘의 주중+= 1을 얻습니다. if (day == 8) {// STRING MORNTIME = 1; morntime.indexof ( ":"); Integer beforemorntimehour = integer.subspring (0, j)); // 아침 작업 시간 정수 beforemorntimeMinute = integer.parseint (morntime.substring (J+1, morntime.length); // 새로운 날짜); 날짜 (beforemorntimehour) minute = calendar.minute); // stack cron = "0"+minute+"" * * "+day+" "; trigger.nextexecutiontime (triggercontext); }}CRON 매개 변수의 기본 사용 :
● ASTERISK () : 모든 필드에서 해당 시간 영역에서 각 모멘트를 나타내는 데 사용될 수 있습니다. 예를 들어 분 필드에서는 "분당"을 의미합니다.
● 질문 마크 (?) :이 문자는 날짜와 주간 필드에만 사용되며 일반적으로 도트 문자와 동등한 "무의미한 가치"로 지정됩니다.
● 마이너스 부호 (-) : 범위를 표현하십시오. "10-12"가 시간 필드에서 사용되는 경우, 10 점에서 12 점, 즉 10, 11, 12를 의미합니다.
● 쉼표 (,) : 목록 값을 표현하십시오. 주간 필드에서 "Mon, Wed, Fri"를 사용하는 경우 월요일, 수요일 및 금요일을 의미합니다.
● 슬래시 (/) : x/y는 동일 단계 시퀀스, x는 시작 값이고 y는 증분 단계 값입니다. 분 필드에서 0/15를 사용하는 경우 0, 15, 30 및 45 초로 표현되며 5/15는 분 필드에서 5, 20, 35, 50을 의미합니다. */y는 0/y와 동일합니다.
● L :이 캐릭터는 날짜 및 주간 필드에서만 사용되며 "마지막"의 의미를 나타내지 만 두 분야에서는 다르게 의미합니다. l 날짜 필드의 L은 1 월 31 일 및 2 월 28 일과 같은 달의 마지막 날을 나타냅니다. L가 주에 사용된다면, 토요일은 7에 해당하는 토요일을 나타냅니다. 그러나 L이 주 주에 나타나고 값 X가 선행되면 "월의 마지막 X 일"을 의미합니다. 예를 들어, 6L은 월의 마지막 금요일을 의미합니다.
● W :이 캐릭터는 날짜 필드에만 나타날 수 있으며 선행 날짜를 수정하여 날짜에 가장 가까운 근무일을 나타냅니다. 예를 들어, 15W는 이달 15 일까지 가장 가까운 근무일을 나타냅니다. 매월 15 일이 토요일이면 14 일 금요일과 일치합니다. 매월 15 일이 일요일이라면 16 일 월요일과 일치합니다. 매월 15 일이 화요일이면 화요일은 15 일입니다. 그러나 관련된 일치 날짜는 그 달에 넘을 수 없다는 점에 유의해야합니다. 1W를 지정하는 경우 첫날이 토요일 인 경우 결과는 지난 달의 마지막 날이 아닌 월요일 3과 일치합니다. W 문자열은 단일 날짜 만 지정할 수 있지만 날짜 범위를 지정할 수는 없습니다.
● LW 조합 : LW는 날짜 필드에서 사용할 수 있으며 이는 월의 마지막 근무일을 의미합니다.
● 키 부호 (#) :이 문자는 주 주 필드에서만 사용할 수 있으며 월의 근무일을 나타냅니다. 예를 들어, 6#3은 달의 세 번째 금요일을 나타냅니다 (6은 금요일,#3은 현재 세 번째를 나타냅니다), 4#5는 이달의 다섯 번째 수요일을 나타냅니다.
● C :이 문자는 날짜 및 주 필드에만 사용되며 "캘린더"의 의미를 나타냅니다. 이는 계획과 관련된 날짜를 의미하며 날짜가 연관되지 않은 경우 캘린더의 모든 날짜와 동일합니다. 예를 들어, 날짜 필드의 5C는 달력 5 일 다음 날과 동일합니다. 1C는 주일의 일요일 이후의 첫날과 동일합니다.
CRON 표현은 특수 문자의 경우에 민감하지 않으며 이번 주 영어 사건의 약어에 민감하지 않습니다.
표 2는 아래의 완전한 CRON 표현의 몇 가지 예를 보여줍니다.
크론 표현은 "0 0 12 * *?"를 의미합니다. 트리거 "0 15 10? * *"트리거 "0 15 10 * *?" 트리거 "0 15 10 * *?" 트리거 "0 15 10 * *? *"트리거 "0 15 10 * *? *"트리거 "0 15 10 * *? 2005"트리거 "0 * 14 * *?" 트리거 "0 0/5 14 * *?" 트리거 "0 0/5 14 * *?" 트리거 "0 0/5 14,18 * *?" 트리거 "0 0/5 14,18 *?" 트리거 "0 0/5 14,18 *?" 0 0-5 14 * *?” 매일 2시에서 14:05까지 5 분마다 "0 10,44 14? 3 개 "3 월 수요일마다 3 월에 트리거"0 15 10? * Mon-Fri "매주 월요일, 화요일, 수요일, 목요일 및 금요일.
요약
위의 것은 편집기가 소개 한 SpringBoot Dynamic Timer를 사용하는 것입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!