功能概述:
1 首页显示自己添加的定时任务
1.1 点击新增可以添加定时任务
1.2 任务状态分为:运行中、暂停、已失效,运行中的任务可以删除、编
辑、暂停,已失效的任务只可以删除、编辑(重新编辑后任务可以再次运行)
2 任性新增界面
2.1 2.2 2.3 2.4
编写任务标题
编写提醒内容(提醒内容无字数限制) 提醒时间可以选择详细、每日、每周、每月、cron(类似Linux的cron) 向谁提醒可以选择多人
功能实现:
1 定时任务持久化
如果定时任务不进行持久化配置用户设置的定时任务会保存在内存中,应用重启后定时任务就不存在了。 1.1 配置文件
各配置参数请自己百度
org.quartz.scheduler.instanceName = DefaultQuartzScheduler org.quartz.scheduler.rmi.export = false org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction = false org.quartz.threadPool.class: org.quartz.simpl.SimpleThreadPool org.quartz.threadPool.threadCount: 10 org.quartz.threadPool.threadPriority: 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread: false
#org.quartz.jobStore.misfireThreshold = 100000
org.quartz.jobStore.class:org.quartz.impl.jdbcjobstore.JobStoreTX org.quartz.jobStore.driverDelegateClass:org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.useProperties: ture org.quartz.jobStore.dataSource:myDS org.quartz.jobStore.tablePrefix:QRTZ_ org.quartz.jobStore.isClustered:false #上线时需要修改数据库配置
org.quartz.dataSource.myDS.connectionProvider.class:tool.remind.MyPoolingconnectionProvider
#org.quartz.dataSource.myDS.driver: com.mysql.jdbc.Driver #org.quartz.dataSource.myDS.URL:
jdbc:mysql://localhost:3306/zcglpz1?characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
org.quartz.dataSource.myDS.driver=net.sf.log4jdbc.DriverSpy org.quartz.dataSource.myDS.URL=jdbc:log4jdbc:mysql://localhost:3306/zcglpz1?characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
org.quartz.dataSource.myDS.user:root org.quartz.dataSource.myDS.password:123654 org.quartz.dataSource.myDS.maxConnections:5
1.2 编写MyPoolingconnectionProvider.java类
package tool.remind; import java.sql.Connection; import java.sql.SQLException;
import org.apache.commons.dbcp.BasicDataSource; import org.quartz.SchedulerException; import org.quartz.utils.ConnectionProvider;
public class MyPoolingconnectionProvider implements ConnectionProvider { private BasicDataSource datasource; private String dbDriver; private String URL; private String dbUser; private String dbPassword; private int maxConnections;
private int maxStatementsPerConnection; private String dbValidationQuery; private boolean validateOnCheckout; private int idleValidationSeconds; private int maxIdleSeconds;
public MyPoolingconnectionProvider() {
}
private void initialize(String dbDriver, String URL, String dbUser,String dbPassword, int maxConnections, int maxStatementsPerConnection, String
dbValidationQuery,boolean validateOnCheckout,int idleValidationSeconds,int maxIdleSeconds) throws SQLException, SchedulerException { if (URL == null) {
throw new SQLException(
\ }
if (dbDriver == null) { throw new SQLException(
\ \ }
if (maxConnections < 0) { throw new SQLException(
\ \ }
datasource = new BasicDataSource(); datasource.setDriverClassName(dbDriver);
datasource.setUrl(URL);
datasource.setUsername(dbUser);