定时任务每隔5分钟 定时任务

JAVA实现定时任务的几种方式Java 基本的定时任务,总结方法有三种:
1创建一个thread,然后让它在while循环里一直运行着,通过sleep方法来达到定时任务的效果;
2用Timer和TimerTask与第一种方法相比有如下好处:
当启动和去取消任务时可以控制
第一次执行任务时可以指定你想要的delay时间
3用ScheduledExecutorService是从的java.util.concurrent里,做为并发工具类被引进的,这是最理想的定时任务实现方式,相比于上两个方法,它有以下好处:
相比于Timer的单线程,它是通过线程池的方式来执行任务的
可以很灵活的去设定第一次执行任务delay时间
提供了良好的约定,以便设定执行的时间间隔

定时任务每隔5分钟 定时任务

文章插图
定时任务 | @scheduledSpringBoot为我们内置了@Scheduled定时任务,下面我们就来配置下这个注解,找到入口程序添加注解@EnableScheduling,添加注解后SpringBoot就已经认定了我们要使用定时任务来完成一些业务逻辑了,内部会对应原始配置定时任务添加对应的配置文件
@scheduled注解用来配置到方法上来完成对应的定时任务的配置,如执行时间,间隔时间,延迟时间等等,下面我们就来详细的看下对应的属性配置
下面我们来配置@Scheduled,来完成每小时输出内容
Seconds : 可出现", - * /"四个字符,有效范围为0-59的整数
Minutes : 可出现", - * /"四个字符,有效范围为0-59的整数
Hours : 可出现", - * /"四个字符,有效范围为0-23的整数
DayofMonth : 可出现", - * / ? L W C"八个字符,有效范围为0-31的整数
Month : 可出现", - * /"四个字符,有效范围为1-12的整数或JAN-DEc
DayofWeek : 可出现", - * / ? L C #"四个字符,有效范围为1-7的整数或SUN-SAT两个范围 。1表示星期天,2表示星期一, 依次类推
Year : 可出现", - * /"四个字符,有效范围为1970-2099年
下面简单举几个例子:
"0 0 12 * * ?"每天中午十二点触发
"0 15 10 ? * *"每天早上10:15触发
"0 15 10 * * ?"每天早上10:15触发
"0 15 10 * * ? *"每天早上10:15触发
"0 15 10 * * ? 2005"2005年的每天早上10:15触发
"0 * 14 * * ?"每天从下午2点开始到2点59分每分钟一次触发
"0 0/5 14 * * ?"每天从下午2点开始到2:55分结束每5分钟一次触发
"0 0/5 14,18 * * ?"每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发
"0 0-5 14 * * ?"每天14:00至14:05每分钟一次触发
"0 10,44 14 ? 3 WED"三月的每周三的14:10和14:44触发
"0 15 10 ? * MON-FRI"每个周一、周二、周三、周四、周五的10:15触发
该属性的含义是指在项目启动后在定义的时间后开启定时任务,配合fixedRate()和fixedDelay()使用
该属性的含义是调用固定周期(以毫秒为单位)执行方法:就是上一次开始执行时间点之后延迟执行
该属性的含义是上次调用结束和下一次调用结束之间的固定周期(以毫秒为单位)执行方法:就是上一次执行完毕时间点之后延迟执行 。
1、cron、fixedDelay、fixedRate 三者之间不能共存!!!
2、fixedDelay、fixedRate不能单独使用!!!
会抛出一个错误:
如何配置定时任务若是使用vivo手机,可以参考以下方法:
Origin OS系统:进入设置--快捷与辅助--定时任务,可以设置定时开关机、定时振动、定时飞行模式、倒计时振动 。
Funtouch OS9.2及以上:进入设置--快捷与辅助--定时任务,然后进行定时开关机、定时振动、定时飞行模式、倒计时振动功能的设置;
Funtouch OS9.2以下:进入设置--(更多设置)--定时任务,然后进行定时开关机、定时振动、定时飞行模式、倒计时振动功能的设置 。
更多疑惑,可以进入vivo官网--点击我的—在线客服,输入“人工”联系在线客服处理 。
定时任务 实现定时任务的方法有很多,接下来我们针对各种方法对比下优缺点 。
sched模块实现了一个时间调度程序,该程序可以通过单线程执行来处理按照时间尺度进行调度的时间 。
通过调用scheduler.enter(delay,priority,func,args)函数,可以将一个任务添加到任务队列里面,当指定的时间到了,就会执行任务(func函数) 。
执行结果为:
按顺序执行任务:
执行结果为:
s.run()会阻塞当前线程的执行
可以用
也可以用s.cancal(action)来取消sched中的某个action
APScheduler有四种组件:
示例2、
示例3、
示例4、
运行结果为:

秒懂生活扩展阅读