您的位置:首页 > 运维架构 > 网站架构

使用Quartz框架构建一个定时任务的实例

2013-08-12 17:37 906 查看
1.引入Quartz框架所需jar包。
2.新建任务类---实现Job接口

package my.task;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class MyTask implements Job {

private static final Logger logger = Logger
.getLogger(MyTask.class);
@Override
public void execute(JobExecutionContext context)
throws JobExecutionException {
try {
logger.info("Task started.");
// 写入你要做的定时任务
System.out.println("my job!"+ new Date().toString());
logger.info("Task finished.");
} catch (Exception e) {
logger.error("execute Task error", e);
}
}
}
3. 主方法。

package my;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.SimpleScheduleBuilder.repeatSecondlyForever;
import static org.quartz.TriggerBuilder.newTrigger;
import org.apache.log4j.Logger;
import org.quartz.JobDetail;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
public class Main {
private static Logger logger = Logger.getLogger(Main.class);
public static void main(String[] args) {
logger.warn("started");
try {
org.quartz.Scheduler taskScheduler = StdSchedulerFactory
.getDefaultScheduler();
taskScheduler.start();

JobDetail myJob = newJob(MyTask.class)
.withIdentity("myJob").build();
Trigger myTrigger = newTrigger()
.withIdentity("myJob").startNow()
.withSchedule(repeatSecondlyForever(60*60))
.build();
taskScheduler.scheduleJob(myJob, myTrigger);

} catch (Throwable t) {
logger.error("Failed to schedule quartz tasks!", t);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: