如何用参数传给Spring定时任务,以致可任意调整定时时间
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用参数传给Spring定时任务,以致可任意调整定时时间相关的知识,希望对你有一定的参考价值。
定时器的操作可以是扫描保存时间的表,然后比对表中保存的执行时间和系统当前时间,如果满足条件就触发操作,如果不满足就不管~~~不过这个spring的任务时间间隔要设置比较短~~~ 参考技术A 可以在数据库中进行设置,然后每次和数据库时间做判断,数据库时间用页面管理。
利用spring+quartz-scheduler+MySql实现定时任务动态调整
一、需求
由于可能要动态调整某些定时任务的执行,然而目前WEB方面的现状是所有定时任务是利用spring @Scheduled注解方式实现,不方便动态在调整定时任务的执行时间
二、分析
在Spring中使用Quartz有两种方式实现:第一种是任务类继承QuartzJobBean,第二种则是在配置文件里定义任务类和要执行的方法,类和方法可以是普通类。因此第二种方式远比第一种方式来的灵活。所以这个分析设计也是基于spring配置的方式
Quartz中是以分组名+任务名作为任务的唯一key,为与quartz中的实现方式一致,本设计也采用这样的方式
注:spring @Scheduled注解方式,定时任务的执行Job在内存,不方便动态调整,并且不支持比如最后一个工作0 0 17 ? * MON-FRI 0 0 15 LW * ?等诸如此类的cron表达式,功能相对quartz比较弱些
三、实现
3.1 数据表的设计
直接上表吧
CREATE
TABLE
`schedule_job` (
`job_id`
varchar
(45)
NOT
NULL
DEFAULT
''
COMMENT
'任务id,用于区分业务'
,
`job_name`
varchar
(64)
NOT
NULL
DEFAULT
''
COMMENT
'任务名称'
,
`job_group`
varchar
(64)
NOT
NULL
DEFAULT
'DEFAULT'
COMMENT
'任务分组'
,
`job_status`
varchar
(32)
DEFAULT
'1'
COMMENT
'任务状态 0禁用 1启用 2删除'
,
`cron_expression`
varchar
(64)
DEFAULT
NULL
COMMENT
'任务运行时间表达式'
,
`job_desc`
varchar
(256)
DEFAULT
NULL
COMMENT
'任务描述'
,
`create_time`
int
(11)
DEFAULT
NULL
,
`update_time`
int
(11)
DEFAULT
NULL
,
`operator`
varchar
spring quarzt定时任务调整系统时间后不执行
|