Quartz Web Management
提供了基本的Quartz管理方式,有简单的WEB页面,用户可以根据接口自定义页面开发
源码地址:https://github.com/quartzweb/quartz-web
项目如何使用和常见问题处理
1. 项目简介
基于开源定时任务Quartz书写.
该项目适用于j2se,j2ee,spring项目.
实现了简单的Scheduler(调度器),Job(作业),Trigger(触发器)的简单操作.
Scheduler:启动,结束
Job:动态配置
Trigger:动态配置
2. 下载地址
maven中央仓库: http://central.maven.org/maven2/com/github/quartzweb/quartz-web/
3. 源码地址
Quartz-web是一个开源项目,源码托管在github上
源代码仓库地址是 https://github.com/quartzweb/quartz-web
4. Maven地址
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${quartz-web.version}</version>
</dependency
5. J2SE使用方式
添加依赖
<!-- quartz-web的依赖 --> <dependency> <groupId>com.github.quartzweb</groupId> <artifactId>quartz-web</artifactId> <version>${quartz-web.version}</version> </dependency> <!-- 日志依赖 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.9</version> </dependency> <!-- jetty依赖 --> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> <version>8.1.22.v20160922</version> </dependency> <!-- jetty依赖 --> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-webapp</artifactId> <version>8.1.22.v20160922</version> </dependency> <!--quartz依赖--> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version> </dependency>
启动项目
// 新建web服务器 StartWebServer webServer = new StartWebServer(); // 启动服务 webServer.startServer();
配置文件介绍
默认配置文件在classpath:quartzWebServer.properties
如需修改请在classpath:下新建quartzWebServer.properties自定义配置
默认配置如下:#启动端口 port=8080 #启动页面HTML存放地 resourcePath=/html #页面管理路径 contextPath=/quartzweb #启动的目标Servlet startWebServer.servlet.class=com.github.quartzweb.http.QuartzWebServlet #用户名密码 quartWebUser=username:password;username2:password2
访问
http://localhost:8080/quartzweb 输入用户名:username,密码:password进入管理界面
6. J2EE使用方式
添加依赖
<!-- quartz-web的依赖 --> <dependency> <groupId>com.github.quartzweb</groupId> <artifactId>quartz-web</artifactId> <version>${quartz-web.version}</version> </dependency> <!-- 日志依赖 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.9</version> </dependency> <!--quartz依赖--> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version> </dependency>
web.xml设置
<servlet> <servlet-name>quartzweb</servlet-name> <servlet-class>com.github.quartzweb.http.QuartzWebUIServlet</servlet-class> <!--配置HTML页面地址,不配置默认为/html--> <init-param> <param-name>resourcePath</param-name> <param-value>/html</param-value> </init-param> <!--用户名密码--> <init-param> <param-name>quartWebUser</param-name> <param-value>username:password;username2:password2</param-value> </init-param> </servlet> <!--配置url--> <servlet-mapping> <servlet-name>quartzweb</servlet-name> <url-pattern>/quartzweb/*</url-pattern> </servlet-mapping>
访问
http://localhost:port/webAppName/quartzweb 进入控制台页面,输入用户名:username,密码:password进入管理界面
7. Spring关联配置
修改spring配置文件
<bean name="quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="applicationContextSchedulerContextKey" value="applicationContextKey" /> <property name="configLocation" value="classpath:/properties/quartz.properties" /> </bean> <!--声明scheduler--> <bean name="quartzScheduler2" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="applicationContextSchedulerContextKey" value="applicationContextKey" /> </bean> <!--设置系统管理器,必须使用getInstance()初始化实例,系统整体设计管理器全部为单例--> <bean class="com.github.quartzweb.manager.quartz.QuartzManager" factory-method="getInstance"> <!--设置scheduler集合--> <property name="schedulers"> <list> <ref bean="quartzScheduler" /> <ref bean="quartzScheduler2" /> </list> </property> <!--设置是否查找scheduler仓库--> <property name="lookupSchedulerRepository" value="false"/> <!--是否启动默认scheduler--> <property name="useDefaultScheduler" value="false"/> </bean> <!--声明bean获取管理器,通过构造函数方式获取--> <bean id="constructorQuartzBeanManager" class="com.github.quartzweb.manager.bean.ConstructorQuartzBeanManager"> <property name="priority" value="5" /> </bean> <!--设置bean管理器,通过spring的applicationContext获取--> <bean id="springQuartzBeanManager" class="com.github.quartzweb.manager.bean.SpringQuartzBeanManager"> <property name="priority" value="10" /> </bean> <!--声明bean管理器门面,必须使用getInstance()初始化实例--> <bean id="quartzBeanManagerFacade" class="com.github.quartzweb.manager.bean.QuartzBeanManagerFacade" factory-method="getInstance"> <!--设置管理器,根据优先级排序--> <property name="quartzBeanManagers"> <list> <ref bean="springQuartzBeanManager"/> <ref bean="constructorQuartzBeanManager"/> </list> </property> <!--是否启用默认bean管理器--> <property name="useDefaultQuartzBeanManager" value="false"/> </bean>