Spring定时任务:@Schedule

在开发中经常遇到一些定时任务,比如到点自动爬取数据、到点自动执行清除数据库信息之类,使用spring的Schedule功能就可以实现需求。

快速入门:

从https://cron.qqe2.com/里面根据自己的需求获取cron表达式

编写对应的代码:

在启动类上面加一个注解:

执行效果:

相关参数:

多重任务(开启线程池):

如果需要多个定时任务需要重写SchedulingConfigurer接口:

package com.github.binarywang.demo.wx.mp.config;import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;/*** @program: weixin-java-mp-demo-master* @description: schedule的自定义配置文件* @author: chenzou* @create: 2021-10-24 09:50**/
@Configuration
public class ScheduledConfig implements SchedulingConfigurer {/*** 任务执行线程池大小*/private static final int TASK_POOL_SIZE = 5;/*** 线程名*/private static final String TASK_THREAD_PREFIX = "cron-task-";@Overridepublic void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {ThreadPoolTaskScheduler taskPool = new ThreadPoolTaskScheduler();taskPool.setPoolSize(TASK_POOL_SIZE);taskPool.setThreadNamePrefix(TASK_THREAD_PREFIX);taskPool.initialize();scheduledTaskRegistrar.setTaskScheduler(taskPool);}
}

测试代码:

package com.github.binarywang.demo.wx.mp.utils;import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;/*** @program: weixin-java-mp-demo-master* @description:* @author: chenzou* @create: 2021-10-24 09:41**/
@Slf4j
@Component
public class myCron {@Scheduled(cron = "0/5 * * * * ? ")public void saying() {log.debug("=========  这里是定时任务   ================");}@Scheduled(cron = "0/7 * * * * ? ")public void saying2() {log.error("=========  7秒的这里是定时任务   ================");}@Scheduled(cron = "10 * * * * ? ")public void saying3() {log.warn("=========  10秒的这里是定时任务   ================");}}

效果:

2021-10-24 10:05:42.004 ERROR 8684 --- [    cron-task-2] c.g.binarywang.demo.wx.mp.utils.myCron   : =========  7秒的这里是定时任务   ================
2021-10-24 10:05:45.001 DEBUG 8684 --- [    cron-task-3] c.g.binarywang.demo.wx.mp.utils.myCron   : =========  这里是定时任务   ================
2021-10-24 10:05:49.006 ERROR 8684 --- [    cron-task-1] c.g.binarywang.demo.wx.mp.utils.myCron   : =========  7秒的这里是定时任务   ================
2021-10-24 10:05:50.004 DEBUG 8684 --- [    cron-task-4] c.g.binarywang.demo.wx.mp.utils.myCron   : =========  这里是定时任务   ================
2021-10-24 10:05:55.002 DEBUG 8684 --- [    cron-task-4] c.g.binarywang.demo.wx.mp.utils.myCron   : =========  这里是定时任务   ================
2021-10-24 10:05:56.007 ERROR 8684 --- [    cron-task-3] c.g.binarywang.demo.wx.mp.utils.myCron   : =========  7秒的这里是定时任务   ================
2021-10-24 10:06:00.010 DEBUG 8684 --- [    cron-task-3] c.g.binarywang.demo.wx.mp.utils.myCron   : =========  这里是定时任务   ================
2021-10-24 10:06:00.010 ERROR 8684 --- [    cron-task-2] c.g.binarywang.demo.wx.mp.utils.myCron   : =========  7秒的这里是定时任务   ================
2021-10-24 10:06:05.006 DEBUG 8684 --- [    cron-task-3] c.g.binarywang.demo.wx.mp.utils.myCron   : =========  这里是定时任务   ================
2021-10-24 10:06:07.004 ERROR 8684 --- [    cron-task-5] c.g.binarywang.demo.wx.mp.utils.myCron   : =========  7秒的这里是定时任务   ================
2021-10-24 10:06:10.002 DEBUG 8684 --- [    cron-task-4] c.g.binarywang.demo.wx.mp.utils.myCron   : =========  这里是定时任务   ================
2021-10-24 10:06:10.002  WARN 8684 --- [    cron-task-1] c.g.binarywang.demo.wx.mp.utils.myCron   : =========  10秒的这里是定时任务   ================
2021-10-24 10:06:14.005 ERROR 8684 --- [    cron-task-2] c.g.binarywang.demo.wx.mp.utils.myCron   : =========  7秒的这里是定时任务   ================
2021-10-24 10:06:15.012 DEBUG 8684 --- [    cron-task-3] c.g.binarywang.demo.wx.mp.utils.myCron   : =========  这里是定时任务   ================
2021-10-24 10:06:20.012 DEBUG 8684 --- [    cron-task-3] c.g.binarywang.demo.wx.mp.utils.myCron   : =========  这里是定时任务   ================
2021-10-24 10:06:21.014 ERROR 8684 --- [    cron-task-5] c.g.binarywang.demo.wx.mp.utils.myCron   : =========  7秒的这里是定时任务   ================
2021-10-24 10:06:25.004 DEBUG 8684 --- [    cron-task-1] c.g.binarywang.demo.wx.mp.utils.myCron   : =========  这里是定时任务   ================
2021-10-24 10:06:27.864  INFO 8684 --- [       Thread-2] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'Process finished with exit code 130

Spring定时任务:@Schedule相关推荐

  1. spring定时任务@schedule

    现在项目完成了,希望能够在项目中添加定时任务.比如取微信的accesstoken时,每7000s取一次.具体需要修改的地方如下: 1.在spring配置文件中添加task的声明 xmlns:task= ...

  2. Spring定时任务 - @Schedule注解详解

    一.@Schedule注解一览 @Scheduled注解共有8个属性(其中有3组只是不同类型的相同配置)和一个常量CRON_DISABLED,源码如下: /*** 标记要调度的方法的注释. 必须准确指 ...

  3. Spring整合Schedule定时任务详解

    Spring整合Schedule定时任务详解 Spring 定时任务官方网站 一.概述 用Spring,就是为了简单. 但是我还是要总结下java定时任务实现的几种方式. 1.TimerTask,等于 ...

  4. 浅谈Spring定时任务

    浅谈Spring定时任务 三种定时任务基于原理 多定时任务并发配置 动态定时任务 定时任务Demo 三种定时任务基于原理 SpringBoot配置定时任务主要有Spring Schedule.JDK自 ...

  5. Spring定时任务,手动关闭开启

    Spring定时任务,手动关闭开启: 首先这里我们需要重新认识一个类ThreadPoolTaskScheduler:线程池任务调度类,能够开启线程池进行任务调度. ThreadPoolTaskSche ...

  6. spring定时任务 时间配置cron表达式

    1.Spring quartz 1.1 单纯针对时间的设置规则 org.springframework.scheduling.quartz.CronTriggerBean允许你更精确地控制任务的运行时 ...

  7. Spring定时任务的几种实现

    Spring定时任务的几种实现 spring框架 quartz spring spring-task 定时任务 注解 近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信 ...

  8. (转)Spring定时任务的几种实现

    Spring定时任务的几种实现 博客分类: spring框架 quartzspringspring-task定时任务注解  Spring定时任务的几种实现 近日项目开发中需要执行一些定时任务,比如需要 ...

  9. spring定时任务

    使用spring定时任务包Quartz时,必须使用Quartz1.85以下版本的. 查看发现spring3.0.5中org.springframework.scheduling.quartz.Cron ...

最新文章

  1. MAC YII 安装步骤
  2. 来自lqqm的一些人生感悟,希望从中受益
  3. 怎么解决哈希冲突_从生日悖论谈哈希碰撞
  4. Qt编写OpenMP程序--HelloWorld
  5. 学习ModSecrity Handbook之摘录
  6. python调用oracle过程 权限不足_Python连接Oracle的一些坑以及出现原因和解决方法...
  7. TensorFlow工作笔记002---Centos7.3下TensorFlow使用python创建计算图案例
  8. js 数组的属性及其常用的方法
  9. php 7 环境安装
  10. 全功能短视频平台去水印解析页面源码
  11. 安卓自动化工具(附自动刷抖音脚本实例)
  12. JavaScript验证 IP/域名格式
  13. UDF函数maven工程出现:Missing artifact javax.jdo:jdo2-api:jar:2.3-ec或xsi:schemaLocation=http://maven.apach
  14. 最新版!国内IT软件外包公司汇总~
  15. eNSP不同网段主机互联-DHCP
  16. python剔除st股_剔除st股公式,剔除非st股票
  17. 将彩色图片分离为RGB三个通道的灰度图,并输出
  18. c语言转义字符 xhh,jsj_C语言转义字符和格式控制符参考.pdf
  19. 前端,值得收藏的那些网站
  20. iOS开发之模仿qq通讯录

热门文章

  1. 基于javaweb宠物商品管理商城
  2. WinHex安装与使用
  3. vue动态路由加载组件,找不到module问题
  4. 韩寒的原文:春晚魔术是话剧
  5. 结构体指针变量含义,结构体指针函数
  6. No.58-HackTheBox-windows-Silo-Walkthrough渗透学习
  7. 学习数码管和键盘的笔记
  8. C#字符串转日期时间
  9. MobileNetV1《MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications》
  10. weui 使用教程及问题解决方法