源码如下:
SimpleQuartzJob.java
package cn.javaoop.dream.quartz;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/**
* 读取D盘文件将其内容写入C盘文件中
* @author JavaChaos
*
*/
public class SimpleQuartzJob implements Job {
@Override
public void execute(JobExecutionContext context)
throws JobExecutionException {
System.out.println(context.getTrigger().getName());
try {
File file = new File(”D:/test.txt”);
if (file.canExecute()) {
FileWriter writer = new FileWriter(”C:/test.txt”);// 写入C盘文件
FileReader reader = new FileReader(”D:/test.txt”);// 读取D盘文件
writer.write(reader.read());
System.out.println(”写入成功”);
} else {
System.out.println(”文件不存在”);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
CronTriggerRunner.java
package cn.javaoop.dream.quartz;
import java.text.ParseException;
import org.quartz.CronExpression;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;
/**
* 每隔5秒钟检查D盘有无test.txt,如果有则复制到C盘
*
* @author JavaChaos
*
*/
public class CronTriggerRunner {
public void task() throws SchedulerException {
// 初始化一个调度工厂
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
// 初始化一个调度器
Scheduler scheduler = schedulerFactory.getScheduler();
// JobDetail对象相当于你要调度得任务
JobDetail jobDetail = new JobDetail(”jobDetail-c1″,
”jobDetailGroup-s1″, SimpleQuartzJob.class);
// CronTrigger对象相当于你的配置信息
CronTrigger cronTrigger = new CronTrigger(”cronTrigger”,
”triggerGroup2″);
try {
// cron表达式
CronExpression expression = new CronExpression(”0/5 * * * * ?”);// 每隔5秒执行一次。表达式很强大
// 可以阅读一下相关帮助文档
// 把Cron表达式传给CronTrigger
cronTrigger.setCronExpression(expression);
// 传入参数
scheduler.scheduleJob(jobDetail, cronTrigger);
// 开始进行调度
scheduler.start();
} catch (ParseException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
CronTriggerRunner runner = new CronTriggerRunner();
runner.task();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}
这个例子将上篇日志例子中得SimpleTrigger对象换成了CronTrigger对象。CronExpression类提供得表达式,你可以自己定义运行得时间、周期。更多得使用方法可以阅读相关帮助文档。
下一次会介绍将Quartz整合入Spring中。Srping估计都不会陌生,两者整合灵活性、安全性有了更好得提升。
本人博客:dream.javaoop.cne