您的位置:首页 > 其它

quartz使用cron表达式的实例

2013-12-19 15:32 204 查看


转载注明原文地址:http://thetopofqingshan.iteye.com/blog/1554390

前提信息:
quartz版本信息: 2.1.5
假设读者知道:cron表达式
附件:quartz.jar及实例代码

实例代码
job

Java代码


package com.qingshan.job;

import java.util.Date;

import org.quartz.Job;

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

import org.quartz.JobKey;

/**

* 主要实现打印当前时间的job

* @author qingshan

* @date 2012-06-07

*

*/

public class JobDemo implements Job {

@Override

public void execute(JobExecutionContext context)

throws JobExecutionException {

JobKey jobKey = context.getJobDetail().getKey();//job标识

System.out.println("组:"+jobKey.getGroup()+"--->队"+jobKey.getName()+"\t===>当前时间:"+ String.format("%tF %1$tT",new Date()));

}

}

运行:

Java代码


package com.qingshan.job;

import java.util.Date;

import org.quartz.CronScheduleBuilder;

import org.quartz.CronTrigger;

import org.quartz.JobBuilder;

import org.quartz.JobDetail;

import org.quartz.Scheduler;

import org.quartz.SchedulerException;

import org.quartz.SchedulerFactory;

import org.quartz.SchedulerMetaData;

import org.quartz.TriggerBuilder;

import org.quartz.impl.StdSchedulerFactory;

/**

* 用于配置/运行/关闭程序调度器

* 注:当前类使用的程序调度器是CronTrigger类型的,支持cron表达式

* @author qingshan

* @date 2012-06-07

*/

public class RunJob {

public static void main(String[] args) throws SchedulerException {

// 创建工厂

SchedulerFactory factory = new StdSchedulerFactory();

// 创建程序调度器实例

Scheduler scheduler = factory.getScheduler();

// 创建一个job

JobDetail job = JobBuilder.newJob(JobDemo.class)

.withIdentity("job", "group-job").build();

// 创建触发器:"* * * * * ?"==>每秒都很执行一次

CronTrigger trigger = TriggerBuilder.newTrigger()

.withIdentity("trigger", "group-trigger")

.withSchedule(CronScheduleBuilder.cronSchedule("* * * * * ?"))

.build();

// 执行的日期时间

Date date = scheduler.scheduleJob(job, trigger);

System.out.println(job.getKey() + " 在: "

+ String.format("%tF %1$tT", date) + "已经开启 cron表达式: "

+ trigger.getCronExpression());

// 开启所有已经配置job

scheduler.start();

// 3秒后关闭当前程序调度器

try {

Thread.sleep(3000);

} catch (InterruptedException e) {

e.printStackTrace();

}

// 关闭程序调度器

scheduler.shutdown(true);

// 统计执行的job个数

SchedulerMetaData metaData = scheduler.getMetaData();

System.out.println("已经执行 " + metaData.getNumberOfJobsExecuted()+ " 个job");

}

}

job.zip (524.7 KB)
下载次数: 51
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: