datasource.setPassword(dbPassword); datasource.setMaxActive(maxConnections); datasource.setMinIdle(1);
datasource.setMaxWait(maxIdleSeconds);
datasource.setMaxOpenPreparedStatements(maxStatementsPerConnection);
if (dbValidationQuery != null) {
datasource.setValidationQuery(dbValidationQuery); if(!validateOnCheckout)
datasource.setTestOnBorrow(true); else
datasource.setTestOnReturn(true);
datasource.setTimeBetweenEvictionRunsMillis(idleValidationSeconds); } }
public Connection getConnection() throws SQLException { return datasource.getConnection(); }
public void shutdown() throws SQLException { datasource.close(); }
public void initialize() throws SQLException {
// do nothing, already initialized during constructor call newInstance try {
this.initialize(this.dbDriver, this.URL, this.dbUser, this.dbPassword,
maxConnections, this.maxStatementsPerConnection, this.dbValidationQuery, validateOnCheckout, this.idleValidationSeconds, maxIdleSeconds); } catch (SchedulerException e) {
// TODO Auto-generated catch block throw new SQLException(e); } }
public void setDriver(String dbDriver) { this.dbDriver = dbDriver; }
public void setURL(String URL) { this.URL = URL; }
public String getURL() { return URL; }
public void setUser(String dbUser) { this.dbUser = dbUser; }
public void setPassword(String dbPassword) { this.dbPassword = dbPassword; }
public void setMaxConnections(int maxConnections) {
this.maxConnections = maxConnections; }
public void setMaxCachedStatementsPerConnection(int maxStatementsPerConnection) {
this.maxStatementsPerConnection = maxStatementsPerConnection; }
public void setMaxIdleSeconds(int maxIdleSeconds) { this.maxIdleSeconds = maxIdleSeconds; }
public void setValidationQuery(String dbValidationQuery) { this.dbValidationQuery = dbValidationQuery; }
public void setIdleConnectionValidationSeconds(int idleValidationSeconds) { this.idleValidationSeconds = idleValidationSeconds; }
public void setValidateOnCheckout(boolean validateOnCheckout) { this.validateOnCheckout = validateOnCheckout; }
public void setDiscardIdleConnectionsSeconds(int maxIdleSeconds) { this.maxIdleSeconds = maxIdleSeconds; }
public void setDatasource(BasicDataSource datasource) { this.datasource = datasource; }
protected BasicDataSource getDataSource() { return datasource; } }
1.3 工具类对定时任务进行操作
主要是添加、修改、删除定时任务
package tool.remind;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;
import static org.quartz.CronScheduleBuilder.cronSchedule; import org.quartz.CronTrigger; import org.quartz.Job; import org.quartz.JobDetail; import org.quartz.JobKey; import org.quartz.Scheduler;
import org.quartz.SchedulerException; import org.quartz.SchedulerFactory; import org.quartz.TriggerKey;
import org.quartz.impl.StdSchedulerFactory; public class QuartzManager {
private static SchedulerFactory sFactory = new StdSchedulerFactory(); private static String JOB_GROUP_NAME = \; private static String TRIGGER_GROUP_NAME = \;
public static boolean addJob(String jobName,Class extends Job>
try{
Scheduler scheduler = sFactory.getScheduler(); JobDetail job = newJob(cls).withIdentity(jobName,
cls,String cron){
JOB_GROUP_NAME).build();
}
}
job.getJobDataMap().put(\, jobName);
CronTrigger trigger = newTrigger().withIdentity(jobName, scheduler.scheduleJob(job, trigger); scheduler.start(); return true; return true;
TRIGGER_GROUP_NAME).withSchedule(cronSchedule(cron)).build();
}catch(Exception e){
public static void modifyJobTime(String jobName,String cron){ }
public static void removeJob(String jobName){
try{
Scheduler scheduler = sFactory.getScheduler(); TriggerKey triggerKey = new TriggerKey(jobName, scheduler.pauseTrigger(triggerKey); scheduler.unscheduleJob(triggerKey);
JobKey jobKey = new JobKey(jobName, JOB_GROUP_NAME); scheduler.deleteJob(jobKey); e.printStackTrace(); try{ }
Scheduler scheduler = sFactory.getScheduler(); TriggerKey triggerKey = new TriggerKey(jobName, CronTrigger trigger = if(trigger==null){ }
String oldCron = trigger.getCronExpression(); if(!oldCron.equalsIgnoreCase(cron)){ }
e.printStackTrace();
JobKey jobKey = new JobKey(jobName, JOB_GROUP_NAME); JobDetail jobDetail = scheduler.getJobDetail(jobKey); Class extends Job> jobClass = jobDetail.getJobClass(); removeJob(jobName);
addJob(jobName,jobClass,cron); return;
TRIGGER_GROUP_NAME);
(CronTrigger)scheduler.getTrigger(triggerKey);
}catch(Exception e){
TRIGGER_GROUP_NAME);
}catch(Exception e){