Spring 基於 SchedulingConfigurer 實現定時任務,代碼如下:
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* Spring基於SchedulingConfigurer實現定時任務
*/
@Component
public class TestTask implements SchedulingConfigurer {
// 執行定時任務時間(0 0 2 * * ? 表示上午2點,0 30 9 * * ? 表示上午九點30分)
private String cron = "0 0 2 * * ?";
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.addTriggerTask(() -> {
// 定時任務要執行的內容
System.out.println("【開始執行定時任務。。。】");
}, triggerContext -> {
// 定時任務觸發,可修改定時任務的執行周期
CronTrigger trigger = new CronTrigger(cron);
Date nextExecDate = trigger.nextExecutionTime(triggerContext);
return nextExecDate;
});
}
}
