提供了基本的Quartz管理方式,有简单的WEB页面,用户可以根据接口自定义页面开发
源码地址:https://github.com/quartzweb/quartz-web
项目如何使用和常见问题处理
基于开源定时任务Quartz书写.
该项目适用于j2se,j2ee,spring项目.
实现了简单的Scheduler(调度器),Job(作业),Trigger(触发器)的简单操作.
Scheduler:启动,结束
Job:动态配置
Trigger:动态配置
maven中央仓库: http://central.maven.org/maven2/com/github/quartzweb/quartz-web/
Quartz-web是一个开源项目,源码托管在github上
源代码仓库地址是 https://github.com/quartzweb/quartz-web
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${quartz-web.version}</version>
</dependency
添加依赖
<!-- 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进入管理界面
添加依赖
<!-- 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进入管理界面
修改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>