深入浅析SpringBoot中的定时任务-创新互联
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
创新互联公司是一家专注于网站设计、成都网站设计与策划设计,沅江网站建设哪家好?创新互联公司做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:沅江等地区。沅江做网站价格咨询:13518219792今天就跟大家聊聊有关深入浅析SpringBoot中的定时任务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
1. 定时任务实现方式
定时任务实现方式:
- Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少,这篇文章将不做详细介绍。
- 使用Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂,有空介绍。
- SpringBoot自带的Scheduled,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多,本文主要介绍。
定时任务执行方式:
- 单线程(串行)
- 多线程(并行)
2. 创建定时任务
package com.autonavi.task.test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import com.autonavi.task.ScheduledTasks; @Component public class ScheduledTest { private static final Logger logger = LoggerFactory.getLogger(ScheduledTasks.class); @Scheduled(cron="0 0/2 8-20 * * ?") public void executeFileDownLoadTask() { // 间隔2分钟,执行工单上传任务 Thread current = Thread.currentThread(); System.out.println("定时任务1:"+current.getId()); logger.info("ScheduledTest.executeFileDownLoadTask 定时任务1:"+current.getId()+ ",name:"+current.getName()); } @Scheduled(cron="0 0/1 8-20 * * ?") public void executeUploadTask() { // 间隔1分钟,执行工单上传任务 Thread current = Thread.currentThread(); System.out.println("定时任务2:"+current.getId()); logger.info("ScheduledTest.executeUploadTask 定时任务2:"+current.getId() + ",name:"+current.getName()); } @Scheduled(cron="0 0/3 5-23 * * ?") public void executeUploadBackTask() { // 间隔3分钟,执行工单上传任务 Thread current = Thread.currentThread(); System.out.println("定时任务3:"+current.getId()); logger.info("ScheduledTest.executeUploadBackTask 定时任务3:"+current.getId()+ ",name:"+current.getName()); } }
文章题目:深入浅析SpringBoot中的定时任务-创新互联
文章来源:http://scyanting.com/article/dhjoeh.html