2013-02-20 4 views
1

초기 지연으로 Quartz에서 Cron 작업을 구성하는 방법을 알 수 있습니다. 그래서 10 분의 초기 지연으로 매 시간마다 실행되는 것이 필요합니다.초기 지연이있는 Cron 식 - 석영

"* * 0/1 * * ?" 
+0

잠시 동안 스크립트를 잠자기 상태로 만드는 것은 어떻습니까? – fedorqui

+0

그러면 실행 시간은 몇 분입니까? 1 시간 또는 70 분? – fedorqui

+0

시동 후 10 분에 한번 화재가 발생 했습니까? – darrenmc

답변

0

늦은 답변입니다. 다른 사람들에게 도움이되기를 바랍니다. 내 서비스 클래스에 둘 개 예정 기능을함으로써 문제를 해결 :

@EnableScheduling 
public class DeviceService { 

    @Scheduled(initialDelayString = "${devices.update.initial}", fixedDelay = 2592000000L) 
    public void initialUpdateDevices() { 
     updateDevices(); 
    } 

    @Scheduled(cron = "${devices.update.cron}") 
    public void cronUpdateDevices() { 
     updateDevices(); 
    } 

    private void updateDevices() { 
     ... 
    } 
} 

초기 지연과 크론 표현식은 application.properties에서 설정됩니다. Spring은 initialDelay만을 허용하지 않기 때문에 fixedDelay가있다. 309 일 2592000000ms로 설정했습니다. 우리의 응용 프로그램에서 잠재적 인 추가 업데이트는 아무런 해를 끼치 지 않습니다. application.properties에서

:

처음 01:30 다음 십분 (60000ms) 매일 밤 후에 실행
devices.update.initial = 600000 
devices.update.cron = 0 30 1 * * * 

. 단위 테스트에 대한 application-test.properties에서

: 우리의 단위 테스트의

devices.update.initial = 86400000 
devices.update.cron = 0 30 1 24 12 * 

아무도 그렇게 86400000 (밀리 초)을 실행하기 위해 일일 취하지는 안전한 내기이다. cron "0 30 1 24 12 *"는 사람들이 멋진 것을 꿈꾸는 크리스마스 이브의 밤으로 설정됩니다.