2011-02-11 4 views
1

Quartz에서 일종의 시작 - 일시 중지 - 다시 시작 - 일시 중지 - 계속 (일정한 간격으로) 종류의 작업을 작성하고 있습니다. 나는 초기 실험을 위해 SimpleTrigger를 사용하고있다.Quartz에서 작업이 얼마나 오래 실행되었는지 알아보기

저는 작업이 실행 된 시간을 어떻게 찾을 수 있는지 알고 싶습니다. 나는 Scheduler 클래스를 보았고 직접 찾을 방법이 없었다.

일자리가 얼마나 오랫동안 운영되고 있는지 찾는 방법이 있습니까?

감사합니다, 아비

답변

0

통화 scheduler.getCurrentlyExecutingJobs는() 작업의 현재 (각각의 JobExecutionContext를 얻을 더 정확하게 또는) 실행의 집합을 얻을 수 있습니다.

그런 다음 JobExecutionContext에서 getFireTime()을 호출하여 실행이 시작된 시간을 확인할 수 있습니다.

+0

작업이 10 분 간격으로 실행 중이고 09:00에 시작되었다고 가정 할 때. 09:35 경에 getFireTime()을 가져 오는 동안 무엇이 반환됩니까? 09:00 또는 09:30? – Abhishek

+0

9:30. SimpleTrigger 인 경우 startTime은 9:00입니다. 그러나이 트릭은 다른 트리거 유형에서 반드시 작동하지는 않습니다. – jhouse

+0

SimpleTrigger가 startTime에서 처음으로 트리거되기 때문에 다른 트리거 유형에는 반드시 작동하지 않지만 다른 트리거 유형에는 반드시 해당하지는 않습니다 (예 : CronTrigger가 매 10 초마다 실행되도록 설정할 수 있음). 분, 매일 9:00시 "0 0/10 9 * *?" 시작 시간은 실제로 시작하기 전이나 시작하기 원하는 시점에 설정할 수 있습니다. 의도적으로 앱이 항상 CronTrigger의 startTime을 첫 번째 실행 시간으로 설정하지 않는 한. – jhouse

관련 문제