springMVC+Quartz+mybatis+mysql+DWZ可视化定时器控制-stepOne
来源:互联网 发布:隐藏php版本 编辑:程序博客网 时间:2024/06/05 00:08
第一次写博客...
本人知识有限,对于文中出现的各种问题,请各位看官给予包容,也希望您给我指出我的问题所在。
最近项目遇到定时对账方面的功能需求,首先想到的肯定是用定时器咯。之前对Quartz有所了解,那么就用它吧。
开发中发现,项目部署完,所有定时器的状态都是不可控,无法监视的。这里用web界面可视化的方式对所有定时器进行监控,控制。
没图说个jb,先最终效果图:
一、涉及技术
1.数据库(mysql)
因为是正规的项目,所以对定时器任务的存储肯定是需要的,据我所知Quartz有两种job存储方式
a:RAMJobStore(存储在内存) b:JobStoreTX(存储在数据库)
那么我就选用第二种--JobStoreTX,将定时器所需数据保存在数据库中。这里我选的是mysql。
2.项目框架(Spring MVC)
3.持久层(mybatis)
4.定时器(Quartz)
5.富客户端(DWZ)
二、环境搭建
1.数据库
数据库使用mysql5.0,首先建立数据库(quartzweb)。然后导入quartz官方提供的mysql所需的表以及表结构,字段(quartz使用2.2.1版本。数据库方面信息在doc/dbTables目录)。这里只列出相关表,执行语句参考附件。
a:QRTZ_FIRED_TRIGGERS
b:QRTZ_PAUSED_TRIGGER_GRPS
c:QRTZ_SCHEDULER_STATE
d:QRTZ_LOCKS
e:QRTZ_SIMPLE_TRIGGERS
f:QRTZ_SIMPROP_TRIGGERS
g:QRTZ_CRON_TRIGGERS
h:QRTZ_BLOB_TRIGGERS
i:QRTZ_TRIGGERS
j:QRTZ_JOB_DETAILS
k:QRTZ_CALENDARS
除此之外,还需要一个管理各种job的定时器配置表(config)
DROP TABLE IF EXISTS `config`;CREATE TABLE `config` ( `CID` varchar(32) COLLATE utf8_bin NOT NULL, `JOB_NAME` varchar(200) COLLATE utf8_bin NOT NULL, `JOB_GROUP` varchar(200) COLLATE utf8_bin NOT NULL, `TRIGGER_NAME` varchar(200) COLLATE utf8_bin NOT NULL, `TRIGGER_GROUP` varchar(200) COLLATE utf8_bin NOT NULL, `JOB_CLASS_NAME` varchar(250) COLLATE utf8_bin NOT NULL, `CRON` varchar(20) COLLATE utf8_bin DEFAULT NULL, `NEXT_FIRE_TIME` bigint(13) DEFAULT NULL, `PREV_FIRE_TIME` bigint(13) DEFAULT NULL, `TRIGGER_STATE` varchar(16) COLLATE utf8_bin DEFAULT 'WAITING', `TRIGGER_TYPE` varchar(8) COLLATE utf8_bin DEFAULT NULL, `START_TIME` bigint(13) DEFAULT NULL, `END_TIME` bigint(13) DEFAULT NULL, `DESCRIPTION` varchar(250) COLLATE utf8_bin DEFAULT NULL, PRIMARY KEY (`JOB_NAME`,`JOB_GROUP`,`TRIGGER_NAME`,`TRIGGER_GROUP`,`CID`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
2.项目框架
项目框架采用spring mvc模式。关于spring mvc的配置请参考csdn。
最简单的spring mvc
项目工程截图:
3.持久层(mybatis)
引入相关jar
<!-- mybatis --><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.6.2</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.0.5</version></dependency><dependency><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.3.1</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.0.1</version></dependency>
<!-- 数据源配置,使用c3p0数据库连接池 --><bean id="dataSource_quartz" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${bke.jdbc.driver}" /><property name="jdbcUrl" value="${bke.jdbc.url}" /><property name="user" value="${bke.jdbc.username}" /><property name="password" value="${bke.jdbc.password}" /><property name="initialPoolSize" value="1" /> <property name="maxPoolSize" value="5" /><property name="minPoolSize" value="1" /> <property name="maxIdleTime" value="10" /> <property name="acquireIncrement" value="2"/> <property name="acquireRetryAttempts" value="0"/> <property name="acquireRetryDelay" value="3000"/> <property name="testConnectionOnCheckin" value="true"/> <property name="testConnectionOnCheckout" value="true"/><property name="preferredTestQuery" value="SELECT 1 FROM DUAL" /><property name="idleConnectionTestPeriod" value="60"/><property name="checkoutTimeout" value="0"/></bean><!-- MyBatis配置 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource_quartz" /><property name="configLocation" value="classpath:mybatis-config.xml" /></bean><!-- 自动扫描mapper接口 --><bean name="exppay_dao" class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.kitikousei.quartz.**.dao" /><property name="sqlSessionFactory" ref="sqlSessionFactory" /></bean><!-- Spring事务管理 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource_quartz" /></bean><!-- Spring事务管理使用注解驱动 --><tx:annotation-driven transaction-manager="transactionManager" />
4.定时器(Quartz)
引入相关jar
<!-- quartz --><dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version></dependency><div style="text-align: left;"></div><dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-jobs</artifactId> <version>2.2.1</version></dependency>
未完....
- springMVC+Quartz+mybatis+mysql+DWZ可视化定时器控制-stepOne
- spring+springMVC+Mybatis+dwz 开发
- springmvc集成quartz定时器
- Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(四)
- Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(四)
- Spring+SpringMVC+mybatis+Quartz整合
- Quartz定时器可视化管理功能的简单实现
- 搭建springMVC+Mybatis+quartz+log4j+maven项目
- 搭建springMVC+Mybatis+quartz+log4j+maven项目
- spring整合SpringMVC+Mybatis+ehcache+quartz
- springmvc+mybatis+mysql+maven
- mysql mybatis springmvc 分页
- springMVC + Mybatis +Mysql demo
- springMVC+mybatis+mysql
- springmvc + mybatis+mysql 分页
- SpringMVC+Mybatis+Mysql+Shiro
- spring+springmvc+hibernate实现可重置时间的quartz定时器
- quartz 定时器
- 【网站性能监测系统网络安全必修课 良好意识习惯必不可少】
- Spring中ApplicationContext加载机制和配置初始化
- 运行时之关联对象
- mini2440 dm9000 网卡驱动详解 2
- HDOJ 3038 How Many Answers Are Wrong 并查集
- springMVC+Quartz+mybatis+mysql+DWZ可视化定时器控制-stepOne
- 一个高性能分布式内存队列系统
- 20140915 Navigator对象判断浏览器类型
- 指针函数与函数指针的区别
- mini2440 dm9000 网卡驱动详解 3
- 利用封装到bean的原理解析JsonArray(很实用哦)
- android中小火箭动态喷射动画的简单实现
- C# 拓展ComboBox设置线条属性
- iOS开发中宏判断&宏方法