springboot實現定時任務的兩種方式


 方式一:在springboot啟動類上添加@EnableScheduling注解,然后創建具體的任務類,在方法上添加@Scheduled注解,並指明執行頻率即可。如下:

@Component
public class TestJob {

private final Logger logger = LoggerFactory.getLogger(TestJob.class);

@Scheduled(cron = "*/3 * * * * *")
public void testJob() {
logger.info("Job Test...");
}
}

方式二:創建一個繼承了QuartzJobBean的任務類,同時創建quarz配置類,以向spring容器中注入JobDetail和Trigger。如下:
public class Test2Job extends QuartzJobBean {

private final Logger logger = LoggerFactory.getLogger(Test2Job.class);
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
logger.info("Test2 Job...");
}
}
@Configuration
public class ScheculerConfiguration {

@Bean
public JobDetail jobDetail() {
return JobBuilder.newJob(Test2Job.class)
.withIdentity("test2Job")
.storeDurably()
.build();
}

@Bean
public Trigger jobTrigger() {
ScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule()
.withIntervalInMilliseconds(3)
.repeatForever();
return TriggerBuilder.newTrigger()
.withIdentity("test2JobTrigger")
.forJob(jobDetail())
.withSchedule(scheduleBuilder)
.build();
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM