如何用参数传给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定时任务调整系统时间后不执行

利用spring+quartz-scheduler+MySql实现定时任务动态调整

利用spring+quartz-scheduler+MySql实现定时任务动态调整

如何用 Java 实现 Web 应用中的定时任务

Quartz+Spring Boot实现动态管理定时任务

如何用shell脚本定时启动Tomcat服务

(c)2006-2024 SYSTEM All Rights Reserved IT常识