Spring cron 표현식을 기반으로 고정 일정에 따라 코드를 실행하려고합니다. 매일 1 : 01 : am에 코드를 실행하고 싶습니다. 나는 다음과 같은 표현을 시도했지만 이것은 나에게 해가되지 않았다. 여기 구문에 어떤 문제가 있습니까?
@Scheduled(cron = "0 1 1 ? * *")
public void resetCache() {
// ...
}
Spring cron 표현식을 기반으로 고정 일정에 따라 코드를 실행하려고합니다. 매일 1 : 01 : am에 코드를 실행하고 싶습니다. 나는 다음과 같은 표현을 시도했지만 이것은 나에게 해가되지 않았다. 여기 구문에 어떤 문제가 있습니까?
@Scheduled(cron = "0 1 1 ? * *")
public void resetCache() {
// ...
}
답변:
시도해보십시오 :
@Scheduled(cron = "0 1 1 * * ?")
아래는 봄 포럼에서 예제 패턴을 찾을 수 있습니다.
* "0 0 * * * *" = the top of every hour of every day.
* "*/10 * * * * *" = every ten seconds.
* "0 0 8-10 * * *" = 8, 9 and 10 o'clock of every day.
* "0 0 8,10 * * *" = 8 and 10 o'clock of every day.
* "0 0/30 8-10 * * *" = 8:00, 8:30, 9:00, 9:30 and 10 o'clock every day.
* "0 0 9-17 * * MON-FRI" = on the hour nine-to-five weekdays
* "0 0 0 25 12 ?" = every Christmas Day at midnight
Cron 표현식은 6 개의 필드로 표시됩니다.
second, minute, hour, day of month, month, day(s) of week
(*)
어떤 것과도 일치
*/X
"모든 X"를 의미
?
( "특정 값 없음")-문자가 허용되는 두 필드 중 하나에서 다른 것을 제외하고 무언가를 지정해야 할 때 유용합니다. 예를 들어, 특정 요일 (예 : 10 일)에 트리거를 실행하려고하지만 어떤 요일에 상관하지 않으면 "10"을 입력합니다. 월 필드와 "?" 요일 필드에
추신 : 작동하게하려면 응용 프로그램 컨텍스트에서 활성화해야합니다 : https://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/scheduling.html#scheduling- 주석 지원
내 스케줄러의 경우 매일 오전 6시에 발사하기 위해 사용하고 있으며 cron 표기법은 다음과 같습니다.
0 0 6 * * *
1 : 01 : am을 원한다면로 설정하십시오.
0 1 1 * * *
스케줄러의 전체 코드
@Scheduled(cron="0 1 1 * * *")
public void doScheduledWork() {
//complete scheduled work
}
** 매우 중요
스케줄러의 발사 시간 정확성을 확인하려면 다음과 같이 영역 값을 설정해야합니다 (Istanbul에 있음).
@Scheduled(cron="0 1 1 * * *", zone="Europe/Istanbul")
public void doScheduledWork() {
//complete scheduled work
}
여기 에서 전체 시간대 값을 찾을 수 있습니다 .
참고 : My Spring 프레임 워크 버전은 4.0.7.RELEASE입니다.
<task:scheduled ref="paypalCronJob" method="runTask" cron="0 0 6 * * * ?"/>
??
으로 메소드에 주석을 달 수 있습니다 @Scheduled(cron ="0 1 1 * * ?")
.
0-초
1 분
하루 중 1 시간
내가 주목 한 한 가지는 : spring CronTrigger는 cron이 아닙니다. 유효한 cron 표현식 (cronmaker.com에서 유효성을 검사 할 수 있음)에 7 개의 매개 변수가 생겨서이를 받아들이지 않을 수도 있습니다. 대부분의 경우 마지막 매개 변수를 삭제하면 모든 것이 잘 작동합니다.
매일 봄 크론 표현 1 : 01 : am
@Scheduled (크론 = "01 1? * *")
자세한 내용은 다음 정보를 확인하십시오.
https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm