package com.pactera.common.util;
import com.pactera.modules.sys.job.DispatchWork;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
* @author song
* @date created in 2018-01-19 15:35
*/
public class SchedulerUtil {
* 创建定时任务
*
* @param scheduler the scheduler
* @param jobName the job name
* @param jobGroup the job group
* @param cronExpression the cron expression
* @param clazz job class
*/
public static void createScheduleJob(Scheduler scheduler, String jobName, String jobGroup,
String cronExpression, Class<? extends Job> clazz) throws SchedulerException {
SchedulerFactory schedulerfactory=new StdSchedulerFactory();
try{
scheduler=schedulerfactory.getScheduler();
JobDetail job= JobBuilder.newJob(DispatchWork.class).withIdentity(jobName, jobGroup).build();
Trigger trigger=TriggerBuilder.newTrigger().withIdentity(jobName, jobGroup)
.withSchedule(CronScheduleBuilder.cronSchedule(cronExpression))
.startNow().build();
scheduler.scheduleJob(job, trigger);
scheduler.start();
}catch(Exception e){
e.printStackTrace();
}
}
* 创建定时任务
*
* @param scheduler the scheduler
* @param jobName the job name
* @param jobGroup the job group
* @param cronExpression the cron expression
*/
public static void updateScheduleJob(Scheduler scheduler, String jobName, String jobGroup,
String cronExpression) throws SchedulerException {
TriggerKey triggerKey = TriggerKey.triggerKey(jobName, jobGroup);
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression);
try {
trigger = trigger.getTriggerBuilder().withIdentity(triggerKey)
.withSchedule(scheduleBuilder).build();
}catch (Exception e){
System.out.println("errMsg"+e);
return;
}
scheduler.rescheduleJob(triggerKey, trigger);
}
* 暂停任务
*
* @param scheduler the scheduler
* @param jobName the job name
* @param jobGroup the job group
*/
public static void pauseJob(Scheduler scheduler, String jobName, String jobGroup) throws SchedulerException {
JobKey jobKey = JobKey.jobKey(jobName, jobGroup);
scheduler.pauseJob(jobKey);
}
* 恢复任务
*
* @param scheduler the scheduler
* @param jobName the job name
* @param jobGroup the job group
*/
public static void resumeJob(Scheduler scheduler, String jobName, String jobGroup) throws SchedulerException {
JobKey jobKey = JobKey.jobKey(jobName, jobGroup);
scheduler.resumeJob(jobKey);
}
* 删除任务
*
* @param scheduler the scheduler
* @param jobName the job name
* @param jobGroup the job group
*/
public static void deleteJob(Scheduler scheduler, String jobName, String jobGroup) throws SchedulerException {
JobKey jobKey = JobKey.jobKey(jobName, jobGroup);
scheduler.deleteJob(jobKey);
}
* 立即运行
*
* @param scheduler the scheduler
* @param jobName the job name
* @param jobGroup the job group
*/
public static void triggerJob(Scheduler scheduler, String jobName, String jobGroup) throws SchedulerException {
JobKey jobKey = JobKey.jobKey(jobName, jobGroup);
scheduler.triggerJob(jobKey);
}
}