崛起于Springboot2.X + Quartz定时调度(29)

时光总嘲笑我的痴心妄想 提交于 2019-11-27 02:29:17

《SpringBoot2.X心法总纲》

        下面是两种方法定时任务,一个是集成quartz,另外一个是spring自带的定时任务,后者更简单一些。

         该博客为入门级博客,如果想要查看企业使用Quartz场景,点击 --> 手动操作定时任务

1、pom依赖

        springboot2.0之后,spring-boot-starter中已经包含了quart的依赖,所以只需要添加一个依赖

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

2、定时任务执行的方法类

public class MjtTask extends QuartzJobBean {

    @Override
    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("开始定时计时");
    }
}

3、配置quartz类

@Configuration
public class QuartzConfig {
    @Bean
    public JobDetail uploadTaskDetail() {
        return JobBuilder.newJob(MjtTask.class).withIdentity("mjtTask").storeDurably().build();
    }

    @Bean
    public Trigger uploadTaskTrigger() {
        CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("*/5 * * * * ?");
        return TriggerBuilder.newTrigger().forJob(uploadTaskDetail())
                .withIdentity("mjtTask")
                .withSchedule(scheduleBuilder)
                .build();
    }
}

        每五秒执行一次定时方法

4、运行结果图

        项目启动后,定时任务开始操作,如图:

2018-07-27 15:51:34.799  INFO 44549 --- [           main] o.s.s.quartz.SchedulerFactoryBean        : Starting Quartz Scheduler now
2018-07-27 15:51:34.799  INFO 44549 --- [           main] org.quartz.core.QuartzScheduler          : Scheduler quartzScheduler_$_NON_CLUSTERED started.
2018-07-27 15:51:34.861  INFO 44549 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2018-07-27 15:51:34.868  INFO 44549 --- [           main] com.mjt.spring5.Spring5Application       : Started Spring5Application in 6.087 seconds (JVM running for 9.163)
开始定时计时
开始定时计时
开始定时计时
开始定时计时
开始定时计时
开始定时计时
开始定时计时

5、使用Spring定时任务,更简单

        没有任何配置,直接添加三个注解即可。

@Component
@Configurable
@EnableScheduling
public class TestTask {
    @Scheduled(cron = "0/1 * * * * ?")
    public void test(){
        System.out.println("spring定时任务方法");
    }
}

    于此,我们使用quartz就可以应付所有的定时任务啦。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!