SRIPNG 配置:
<!-- QUARTZ 2.0配置的问题 -->
<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"
lazy-init="false" destroy-method="destroy">
<!-- true or false false不执行 -->
<property name="autoStartup" value="${autoStartup}" />
<property name="waitForJobsToCompleteOnShutdown" value="false" />
<property name="dataSource" ref="dynamicDataSource" />
<property name="overwriteExistingJobs" value="true" />
<property name="startupDelay" value="60"></property>
<property name="jobFactory">
<bean class="org.quartz.simpl.SimpleJobFactory"></bean>
</property>
<property name="quartzProperties">
<props>
<prop key="org.quartz.scheduler.instanceName">ClusteredScheduler</prop>
<prop key="org.quartz.scheduler.instanceId">AUTO</prop>
<prop key="org.quartz.scheduler.skipUpdateCheck">true</prop>
<prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
<prop key="org.quartz.threadPool.threadCount">5</prop>
<prop key="org.quartz.threadPool.threadPriority">5</prop>
<prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop>
<prop key="org.quartz.jobStore.driverDelegateClass">${quartz.jdbcjobstore}</prop>
<prop key="org.quartz.jobStore.misfireThreshold">60000</prop>
<prop key="org.quartz.jobStore.useProperties">false</prop>
<prop key="org.quartz.jobStore.tablePrefix">QRTZ_</prop>
<prop key="org.quartz.jobStore.isClustered">true</prop>
<prop key="org.quartz.jobStore.clusterCheckinInterval">20000</prop>
<prop key="org.quartz.scheduler.classLoadHelper.class">org.quartz.simpl.CascadingClassLoadHelper</prop>
<prop key="org.quartz.jobStore.lockHandler.class">org.quartz.impl.jdbcjobstore.UpdateLockRowSemaphore</prop>
<prop key="org.quartz.jobStore.lockHandler.updateLockRowSQL">UPDATE QRTZ_LOCKS SET LOCK_NAME = LOCK_NAME WHERE LOCK_NAME = ?</prop>
</props>
</property>
</bean>
定时服务:
<bean id="schedulerService" class="com.herry.scheduler.SchedulerService"></bean>
JAVA:
package com.herry.scheduler;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.annotation.Resource;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.quartz.CalendarIntervalScheduleBuilder;
import org.quartz.CronScheduleBuilder;
import org.quartz.Job;
import org.quartz.JobBuilder;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.quartz.JobKey;
import org.quartz.ScheduleBuilder;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.Trigger.TriggerState;
import org.quartz.TriggerBuilder;
import org.quartz.TriggerKey;
import org.quartz.impl.matchers.GroupMatcher;
import com.sf.core.scheduler.ParameterObj;
import com.sf.core.scheduler.PlanObject;
import com.sf.core.util.StringUtil;
import com.sf.core.util.TimeUtil;
import com.sf.core.web.ResultMessage;
/**
* 定时框架。
* <pre>
* 实现功能:
* 1.支持添加,删除定时任务。
* 2.支持对任务添加或删除计划。
* spring 配置文件如下:
*
* <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"
* lazy-init="false" destroy-method="destroy">
* <property name="autoStartup" value="true" />
* <property name="waitForJobsToCompleteOnShutdown" value="false" />
* <property name="dataSource" ref="dataSource" />
* <property name="overwriteExistingJobs" value="true" />
* <property name="jobFactory">
* <bean class="org.quartz.simpl.SimpleJobFactory"></bean>
* </property>
* <property name="quartzProperties">
* <props>
* <!--Job Store -->
* <prop key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</prop>
* <prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreTX</prop>
* <prop key="org.quartz.jobStore.tablePrefix">QRTZ_</prop>
*
* <prop key="org.quartz.jobStore.clusterCheckinInterval">20000</prop>
* <prop key="org.quartz.scheduler.instanceId">AUTO</prop>
* <prop key="org.quartz.scheduler.classLoadHelper.class">org.quartz.simpl.CascadingClassLoadHelper</prop>
* <prop key="org.quartz.jobStore.lockHandler.class">org.quartz.impl.jdbcjobstore.UpdateLockRowSemaphore</prop>
* <prop key="org.quartz.jobStore.lockHandler.updateLockRowSQL">UPDATE QRTZ_LOCKS SET LOCK_NAME = LOCK_NAME WHERE LOCK_NAME = ?</prop>
*
* </props>
*