相关概念
1. 引用maven坐标
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-quartzartifactId>
- dependency>
2. 创建一个任务类,一个普通的类继承QuartzJobBean
- public class MyQuartz extends QuartzJobBean {
- @Override
- protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
- //executeInternal方法中填写要实现的任务
- System.out.println("quartz task run...");
- }
- }
3. 配置类-工作明细和触发器交给Spring管理
- @Configuration
- @Import(value={QuartzConfig.class})
- public class SpringConfig {
- }
- public class QuartzConfig {
- @Bean
- public JobDetail printJobDetail(){
- //绑定具体的工作
- return JobBuilder.newJob(MyQuartz.class).withIdentity("printJobDetail").storeDurably().build();
- }
- @Bean
- public Trigger printJobTrigger(){
- ScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0/5 * * * * ?");
- //绑定对应的工作明细
- return TriggerBuilder.newTrigger().forJob("printJobDetail").withSchedule(scheduleBuilder).build();
- }
- }
1. 在Application类上开启任务管理器
- @SpringBootApplication
- @EnableScheduling
- public class Application {
- public static void main(String[] args){
- SpringApplication.run(Application.class);
- }
- }
2. 任务方法上标记任务,任务运行的时间
- @Service
- public class TaskServiceImpl implements TaskService {
- @Override
- @Scheduled(cron = "0/5 * * * * ?")
- public void print_task() {
- System.out.println("task running...");
- }
- }