首先定义一个任务:任务很简单,就是打印。"Hello World!!!"
public class MyJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("Hello World!!!");
}
}
然后创建一个执行任务调度的工具类
package com.weiyi.study.ss;
import lombok.extern.slf4j.Slf4j;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import org.springframework.stereotype.Component;
/**
* @author <a href="mailto:shizi@microants.cn">狮子</a>
* version 1.0.0
* since 1.0.0
*/
@Component
@Slf4j
public class SchedulerUtil {
/**
* 简单的任务调度方法
* @param jobName 任务名称
* @param jobGroupName 任务组名称
* @param triggerName 触发器名称
* @param triggerGroupName 触发器组的名称
* @param jobClass 任务的class对象
* @param time 每隔几秒执行一次
* @param count 总共执行几次
* @throws SchedulerException
*/
public static void handleSimpleTrigger(String jobName,String jobGroupName,String triggerName,String triggerGroupName,Class jobClass,int time,int count) throws SchedulerException {
SchedulerFactory factory = new StdSchedulerFactory();
Scheduler scheduler = factory.getScheduler();
JobDetail jobDetail = JobBuilder.newJob(jobClass).withIdentity(jobName, jobGroupName).build();
Trigger trigger = TriggerBuilder.newTrigger().withIdentity(triggerName, triggerGroupName).withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(time).withRepeatCount(count)).startNow().build();
scheduler.scheduleJob(jobDetail,trigger);
scheduler.start();
}
/**
* cron表达式任务调度方法
* @param jobName 任务名称
* @param jobGroupName 任务组名称
* @param triggerName 触发器名称
* @param triggerGroupName 触发器组名称
* @param jobClass 任务对象class
* @param cron cron表达式
* @throws SchedulerException
*/
public static void handleCronTrigger(String jobName,String jobGroupName,String triggerName,String triggerGroupName,Class jobClass,String cron ) throws SchedulerException {
SchedulerFactory factory = new StdSchedulerFactory();
Scheduler scheduler = factory.getScheduler();
JobDetail jobDetail = JobBuilder.newJob(jobClass).withIdentity(jobName, jobGroupName).build();
Trigger trigger=TriggerBuilder.newTrigger().withIdentity(triggerName, triggerGroupName)
.withSchedule(CronScheduleBuilder.cronSchedule(cron))
.startNow().build();
scheduler.scheduleJob(jobDetail,trigger);
scheduler.start();
}
//每隔5秒钟执行一次任务调度,总共执行5次
// public static void main(String[] args) throws SchedulerException {
// SchedulerUtil.handleSimpleTrigger("9999","2222","6666","8888",MyJob.class,5,5);
// }
//每天下午的13点37分执行任务调度
public static void main(String[] args) throws SchedulerException {
SchedulerUtil.handleCronTrigger("9999","2222","6666","8888",MyJob.class,"0 37 13 ? * *");
}
}
632

被折叠的 条评论
为什么被折叠?



