java学习-quartz
一、quartz是什么?
在网上找博客却对不上自己公司的代码时,请确定你是否真的了解了java定时器,java实现定时到底有几种方式。
二、怎么用quartz
1.创建一个任务类
public class MyJob implements Job {
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
System.out.println("Hello World");
}
2.写触发器和调度器
1.使用SimpleTrigger:
public class SchedulerUtil {
private static Logger _logger = Logger.getLogger(SchedulerUtil.class);
public static void handleSimpleTrigger(String jobName, String jobGroupName,
String triggerName, String triggerGroupName, Class jobClass,
int time, int count) {
// 通过schedulerFactory获取一个调度器
SchedulerFactory schedulerfactory = new StdSchedulerFactory();
Scheduler scheduler = null;
try {
// 通过schedulerFactory获取一个调度器
scheduler = schedulerfactory.getScheduler();
// 创建jobDetail实例,绑定Job实现类
// 指明job的名称,所在组的名称,以及绑定job类
JobDetail job = JobBuilder.newJob(jobClass)
.withIdentity(jobName, jobGroupName).build();
// 定义调度触发规则
//使用simpleTrigger规则
Trigger trigger=TriggerBuilder.newTrigger()
.withIdentity(triggerName,triggerGroupName)
.withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(time)
.withRepeatCount(count))
.startNow().build();
// 把作业和触发器注册到任务调度中
scheduler.scheduleJob(job, trigger);
// 启动调度
scheduler.start();
} catch (Exception e) {
_logger.warn("执行"+jobGroupName+"组"+jobName+"任务出现异常E:["+ e.getMessage() + "]");
}
}
使用CronTrigger:
public static void hadleCronTrigger(String jobName, String jobGroupName,
String triggerName, String triggerGroupName, Class jobClass,String cron) {
// 通过schedulerFactory获取一个调度器
SchedulerFactory schedulerfactory = new StdSchedulerFactory();
Scheduler scheduler = null;
try {
// 通过schedulerFactory获取一个调度器
scheduler = schedulerfactory.getScheduler();
// 创建jobDetail实例,绑定Job实现类
// 指明job的名称,所在组的名称,以及绑定job类
JobDetail job = JobBuilder.newJob(jobClass)
.withIdentity(jobName, jobGroupName).build();
// 定义调度触发规则
//使用cornTrigger规则 每天18点30分
Trigger trigger=TriggerBuilder.newTrigger().withIdentity(triggerName, triggerGroupName)
.withSchedule(CronScheduleBuilder.cronSchedule(cron))
.startNow().build();
// 把作业和触发器注册到任务调度中
scheduler.scheduleJob(job, trigger);
// 启动调度
scheduler.start();
} catch (Exception e) {
_logger.warn("执行"+jobGroupName+"组"+jobName+"任务出现异常E:["+ e.getMessage() + "]");
}
}
总结
版权声明:本文为cyy9487原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。