Spring+Quartz 从数据库中获取定时任务和定时时间,动态实现对定时任务的增删改查

本文介绍了一种基于SSH框架实现的动态配置定时任务方法,通过数据库存储配置信息,并使用Quartz框架进行任务调度。该方案支持任务的启用、停用、时间调整及删除等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于公司的新接得项目要实现一批数据的同步,通过外围厂商提供的一系列各个系统的webervices接口定时将数据同步到我们开发的共享平台上,由于厂商系统的数据是不断在变化以及各系统闲忙时的特点,所以定时同步任务的执行必须在时间上能够动态配置。因此,我们需要动态的从数据库中获取配置信息,以改变各个定时间的执行规则,废话不说了,上代码:(我利用的是ssh框架直接写的,框架搭建不再叙述)

1.创建数据表(我用的是mysql)

DROP TABLE IF EXISTS `t_wsdoc`;
CREATE TABLE `t_wsdoc` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `triggername` varchar(50) NOT NULL,
  `jobdetailname` varchar(50) NOT NULL,
  `cronexpression` varchar(50) NOT NULL,
  `targetobject` varchar(50) NOT NULL,
  `methodname` varchar(50) NOT NULL,
  `concurrent` char(10) NOT NULL DEFAULT '0',
  `state` char(10) NOT NULL DEFAULT '1',
  `isspringbean` char(10) NOT NULL DEFAULT '0',
  `readme` varchar(100) DEFAULT NULL,
  `reserved1` varchar(50) DEFAULT NULL,
  `reserved2` varchar(50) DEFAULT NULL,
  `reserved3` varchar(50) DEFAULT NULL,
  `reserved4` varchar(50) DEFAULT NULL,
  `reserved5` varchar(50) DEFAULT NULL,
  `reserved6` varchar(50) DEFAULT NULL,
  `reserved7` varchar(50) DEFAULT NULL,
  `reserved8` varchar(50) DEFAULT NULL,
  `reserved9` varchar(50) DEFAULT NULL,
  `reserved10` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `t_wsdoc` VALUES ('1', 'triggername', 'detailname', '0/5 * * * * ?', 'com.framework.timer.ISCSynAllData', 'run', '\'0\'', '\'1\'', '\'0\'', '说明', null, null, null, null, null, null, null, null, null, null);

2.创建表对应的实体类

package ...自定义;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

import com.framework.model.AbstractEntity;


@Entity
@Table(name = "WSDOC", schema = "")
public class Wsdoc extends AbstractEntity{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private Long id;
	// 设置trigger名称
	private String triggername;  
	//设置表达式
	private String cronexpression;
	// 设置Job名称
	private String jobdetailname;
	//任务类名
	private String targetobject;
	//类名对应的方法名
	private String methodname;
	//设置是否并发启动任务 0是false 非0是true
	private String concurrent;
	// 如果计划任务不存则为1 存在则为0
	private String state;
	private String readme;
	//是否是已经存在的springBean 1是  0 否
	private String isspringbean;
	/** 预留字段1 */
	private String reserved1;
	/** 预留字段2 */
	private String reserved2;
	/** 预留字段3 */
	private String reserved3;
	/** 预留字段4 */
	private String reserved4;
	/** 预留字段5 */
	private String reserved5;
	/** 预留字段6 */
	private String reserved6;
	/** 预留字段7 */
	private String reserved7;
	/** 预留字段8 */
	private String reserved8;
	/** 预留字段9 */
	private String reserved9;
	/** 预留字段10 */
	private String reserved10;
	// Constructors

	/** default constructor */
	public Wsdoc() {
	}

	/** full constructor */
	public Wsdoc(String triggername, String cronexpression,
			String jobdetailname, String targetobject, String methodname,
			String concurrent, String state, String readme,String isspringbean) {
		this.triggern
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值