Spring定时任务:@Schedule
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相关推荐
- spring定时任务@schedule
现在项目完成了,希望能够在项目中添加定时任务.比如取微信的accesstoken时,每7000s取一次.具体需要修改的地方如下: 1.在spring配置文件中添加task的声明 xmlns:task= ...
- Spring定时任务 - @Schedule注解详解
一.@Schedule注解一览 @Scheduled注解共有8个属性(其中有3组只是不同类型的相同配置)和一个常量CRON_DISABLED,源码如下: /*** 标记要调度的方法的注释. 必须准确指 ...
- Spring整合Schedule定时任务详解
Spring整合Schedule定时任务详解 Spring 定时任务官方网站 一.概述 用Spring,就是为了简单. 但是我还是要总结下java定时任务实现的几种方式. 1.TimerTask,等于 ...
- 浅谈Spring定时任务
浅谈Spring定时任务 三种定时任务基于原理 多定时任务并发配置 动态定时任务 定时任务Demo 三种定时任务基于原理 SpringBoot配置定时任务主要有Spring Schedule.JDK自 ...
- Spring定时任务,手动关闭开启
Spring定时任务,手动关闭开启: 首先这里我们需要重新认识一个类ThreadPoolTaskScheduler:线程池任务调度类,能够开启线程池进行任务调度. ThreadPoolTaskSche ...
- spring定时任务 时间配置cron表达式
1.Spring quartz 1.1 单纯针对时间的设置规则 org.springframework.scheduling.quartz.CronTriggerBean允许你更精确地控制任务的运行时 ...
- Spring定时任务的几种实现
Spring定时任务的几种实现 spring框架 quartz spring spring-task 定时任务 注解 近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信 ...
- (转)Spring定时任务的几种实现
Spring定时任务的几种实现 博客分类: spring框架 quartzspringspring-task定时任务注解 Spring定时任务的几种实现 近日项目开发中需要执行一些定时任务,比如需要 ...
- spring定时任务
使用spring定时任务包Quartz时,必须使用Quartz1.85以下版本的. 查看发现spring3.0.5中org.springframework.scheduling.quartz.Cron ...
最新文章
- MAC YII 安装步骤
- 来自lqqm的一些人生感悟,希望从中受益
- 怎么解决哈希冲突_从生日悖论谈哈希碰撞
- Qt编写OpenMP程序--HelloWorld
- 学习ModSecrity Handbook之摘录
- python调用oracle过程 权限不足_Python连接Oracle的一些坑以及出现原因和解决方法...
- TensorFlow工作笔记002---Centos7.3下TensorFlow使用python创建计算图案例
- js 数组的属性及其常用的方法
- php 7 环境安装
- 全功能短视频平台去水印解析页面源码
- 安卓自动化工具(附自动刷抖音脚本实例)
- JavaScript验证 IP/域名格式
- UDF函数maven工程出现:Missing artifact javax.jdo:jdo2-api:jar:2.3-ec或xsi:schemaLocation=http://maven.apach
- 最新版!国内IT软件外包公司汇总~
- eNSP不同网段主机互联-DHCP
- python剔除st股_剔除st股公式,剔除非st股票
- 将彩色图片分离为RGB三个通道的灰度图,并输出
- c语言转义字符 xhh,jsj_C语言转义字符和格式控制符参考.pdf
- 前端,值得收藏的那些网站
- iOS开发之模仿qq通讯录