2017-05-03 10 views
1

나는 일정한 간격으로 여러 작업을 실행하는 스케줄링 프로젝트를 진행 중이다. 아래 예제와 같이 cron 스케줄링을 사용하고 있습니다. 작업이 성공적으로 아무 문제없이 실행되고 있습니다. 그러나 요구 사항에 대해 DB의 예약 된 작업의 다음 실행 시간을 계산하고 유지하려고합니다. 아래의 구성에 대해 작업의 다음 및 이전 화재 시간을 가져 오는 솔루션이 있습니까?다음 번 실행 스케줄을 얻는 방법 Spring Scheduling?

예 구성 :

import java.util.Date; 
import org.springframework.beans.factory.annotation.Qualifier; 
import org.springframework.scheduling.annotation.EnableScheduling; 
import org.springframework.scheduling.annotation.Scheduled; 
import org.springframework.scheduling.support.CronTrigger; 
import org.springframework.stereotype.Component; 

@Component 
@EnableScheduling 
public class DemoServiceBasicUsageCron 
{ 
    @Scheduled(cron="1,3,30,32 * * * * ?") 
    public void demoServiceMethod() 
    { 
     System.out.println("Curent date time is - "+ new Date()); 
    } 

} 

답변

0

난 당신 석영을 사용 바랍니다. 당신은 이런 식으로 시도 할 수 있습니다.

CronExpression exp = new CronExpression("1,3,30,32 * * * * ?"); 
exp.getNextValidTimeAfter(new Date()); 
+0

Hi Praneeth, 불행히도 현재 디자인에서는 석영을 사용하지 않습니다. –

0

CronSequenceGenerator을 사용할 수 있습니다.

import org.springframework.scheduling.annotation.Scheduled; 
import org.springframework.scheduling.support.CronSequenceGenerator; 
import org.springframework.stereotype.Component; 

import javax.annotation.PostConstruct; 
import java.util.Date; 

@Component 
public class MyJob { 

    public static final String CRON_EXPRESSION = "0 0 5 * * *"; 

    @PostConstruct 
    public void init() { 
     CronSequenceGenerator cronTrigger = new CronSequenceGenerator(CRON_EXPRESSION); 
     Date next = cronTrigger.next(new Date()); 

     System.out.println("Next Execution Time: " + next); 
    } 

    @Scheduled(cron = CRON_EXPRESSION) 
    public void run() { 
     // Your custom code here 
    } 
}