복붙노트

[SPRING] 매일 봄 cron 표현 1 : 01 : am

SPRING

매일 봄 cron 표현 1 : 01 : am

내 코드를 Spring cron 표현식을 기반으로 고정 된 일정으로 실행하려고합니다. 매일 1시 1 분에 코드를 실행하고 싶습니다. 나는 다음 표현을 시도했다. 그러나 이것은 나를 위해 발사되지 않았다. 이 구문의 잘못된 점은 무엇입니까?

@Scheduled(cron = "0 1 1 ? * *")
public void resetCache() {
    // ...
}

해결법

  1. ==============================

    1.함께 시도해보십시오.

    함께 시도해보십시오.

    @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"을 입력합니다. of-month 필드와 "?" day-of-week 필드에 표시됩니다.

    추신 : 작동 시키려면 애플리케이션 컨텍스트에서 활성화해야합니다. https://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/scheduling.html#scheduling- 주석 지원

  2. ==============================

    2.내 스케줄러의 경우 매일 오전 6시에 실행하기 위해 사용하고 있으며 cron 표기법은 다음과 같습니다.

    내 스케줄러의 경우 매일 오전 6시에 실행하기 위해 사용하고 있으며 cron 표기법은 다음과 같습니다.

    0 0 6 * * *
    

    1시 01 분을 원한다면 다음과 같이 설정하십시오.

    0 1 1 * * *
    

    스케줄러에 대한 완전한 코드

    @Scheduled(cron="0 1 1 * * *")
    public void doScheduledWork() {
        //complete scheduled work
    }
    

    ** 매우 중요

    스케줄러의 발사 시간 정확성을 확인하려면 다음과 같이 영역 값을 설정해야합니다 (이스탄불에 있습니다).

    @Scheduled(cron="0 1 1 * * *", zone="Europe/Istanbul")
    public void doScheduledWork() {
        //complete scheduled work
    }
    

    전체 표준 시간대 값은 여기에서 확인할 수 있습니다.

    참고 : My Spring 프레임 워크 버전 : 4.0.7.RELEASE

  3. ==============================

    3.메소드에 @Scheduled (cron = "0 1 1 * *?") 주석을 달 수 있습니다.

    메소드에 @Scheduled (cron = "0 1 1 * *?") 주석을 달 수 있습니다.

    0 - 초 동안입니다.

    1 ~ 1 분

    1 시간.

  4. ==============================

    4.gipinani의 대답에서 빠진 것이 있습니다.

    gipinani의 대답에서 빠진 것이 있습니다.

    @Scheduled(cron = "0 1 1,13 * * ?", zone = "CST")
    

    이것은 1.01과 13.01에서 실행됩니다. 하루에 여러 번 패턴없이 작업을 실행해야 할 때 사용할 수 있습니다.

    그리고 zone 속성은 원격 서버에 배포 할 때 매우 유용합니다. 이것은 봄 4에 소개되었습니다.

  5. ==============================

    5.내가 알아 차 렸던 한 가지는 : 봄 CronTrigger는 cron이 아닙니다. 유효한 cron 표현식에서 7 개의 매개 변수로 끝나고 (cronmaker.com에서 유효성을 검사 할 수 있음) 스프링을 허용하지 않습니다. 대부분의 경우 마지막 매개 변수 만 삭제하면 모든 것이 잘됩니다.

    내가 알아 차 렸던 한 가지는 : 봄 CronTrigger는 cron이 아닙니다. 유효한 cron 표현식에서 7 개의 매개 변수로 끝나고 (cronmaker.com에서 유효성을 검사 할 수 있음) 스프링을 허용하지 않습니다. 대부분의 경우 마지막 매개 변수 만 삭제하면 모든 것이 잘됩니다.

  6. ==============================

    6.매일 봄 cron 표현 1 : 01 : am

    매일 봄 cron 표현 1 : 01 : am

    @ 스케줄 (cron = "0 1 1? * *")

    자세한 내용은 다음 정보를 확인하십시오.

    https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm

  7. from https://stackoverflow.com/questions/26147044/spring-cron-expression-for-every-day-101am by cc-by-sa and MIT license