码迷,mamicode.com
首页 > 其他好文 > 详细

Quartz简单使用

时间:2016-10-21 19:40:41      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:pre   sys   oba   stack   long   com   ctime   init   express   

官方的Quartz会提供例子的,例子看个前三四个感觉就够用了,主要就是起Timer的作用,但是比timer稳定,而且功能更全。

UpdateClientTimer.task(ClearJob.class, GlobalVars.CLEAR_MAP_TIMER);

一个反射的参数和一个Quartz表达式,这个表达式功能很强大

public static void task(Class cls, String expression) throws SchedulerException {

SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();

// current time
long ctime = System.currentTimeMillis();

JobDetail jobDetail = new JobDetail("detail", "group", cls);
// Initiate CronTrigger with its name and group name
CronTrigger cronTrigger = new CronTrigger("cronTrigger", "group");
try {
// setup CronExpression
CronExpression cexp = new CronExpression(expression);
//CronExpression cexp = new CronExpression("10 * * * * ?");
// Assign the CronExpression to CronTrigger
cronTrigger.setCronExpression(cexp);
} catch (Exception e) {
e.printStackTrace();
}
// schedule a job with JobDetail and Trigger
scheduler.scheduleJob(jobDetail, cronTrigger);

// start the scheduler
scheduler.start();
}

Quartz开始工作了 ,调度频率得看那个class是怎么写的。

public class ClearJob implements Job {
private static Logger log = Logger.getLogger(ClearJob.class);
@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {
log.info("start clear job ");
java.util.Calendar c = java.util.Calendar.getInstance();
int min = c.get(java.util.Calendar.MINUTE);
int second = c.get(java.util.Calendar.SECOND);
try {
if(min % 15 == 0 &&second == 0){

}
if(second % 10 == 0 ){

}

} catch (Exception e) {
e.printStackTrace();
}
}

}

我设置的调度器是10秒调度一次(具体频率由expression决定)

然后在里面有两个动作,一个是10秒触发,一个是15分钟触发。

 

 

 

 

Quartz简单使用

标签:pre   sys   oba   stack   long   com   ctime   init   express   

原文地址:http://www.cnblogs.com/caobojia/p/5985621.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!