Quartz2.1.5定時器的使用
1.下載Quartz2.1.5的jar包
注意:不同版本的jar包有差異
2.官網文檔
3.實現Job接口,這裏編寫的代碼是你需要定時器爲你做的工作
import java.util.Date;
import java.util.logging.Logger;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
/**
* 執行工作
* @author cjh
*
*/
public class ExecuteJob implements Job{
private static final Logger logger = Logger.getLogger(ExecuteJob.class.getName());
/**
* 實現job接口方法
*/
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
//調用描類
logger.info("定時器調用..."+new Date());
}
}
4.定時器,通過這個定時器去高度你的工作
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;
import static org.quartz.CronScheduleBuilder.cronSchedule;
/**
* 定時器
*
* @author cjh
*
*/
public class JobQuartz {
/**
* 工作
*
* @throws SchedulerException
*
* @throws SchedulerException
*/
public static void task() throws SchedulerException {
// 通過StdSchedulerFactory獲得一個Scheduler實例
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
// 使用org.quartz.JobBuilder類的newJob構造一個JobDetail對象
JobDetail job = newJob(ExecuteJob.class).withIdentity("job1", "group1")
.build();
// 使用org.quartz.TriggerBuilder類的newTrigger構造一個Trigger對象
//(通過org.quartz.CronScheduleBuilder類的cronSchedule添加表達式)
Trigger trigger = newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(cronSchedule("0 0/1 * * * ? *"))
.forJob("job1","group1")
.build();
//調度器使用的job和trigger
sched.scheduleJob(job, trigger);
//啓動調度器
sched.start();
}
public static void main(String[] args) {
try {
JobQuartz.task();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}
5.如果是web程序需要初始化定時器,通過Listener初始化
import java.util.logging.Logger;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.quartz.SchedulerException;
/**
* 定時器監聽器
* @author 3qinbo
*
*/
public class QuartzListener implements ServletContextListener {
private static final Logger logger = Logger.getLogger(QuartzListener.class.getName());
/**
* 銷燬
*/
@Override
public void contextDestroyed(ServletContextEvent arg0) {
}
/**
* 初始化
*/
@Override
public void contextInitialized(ServletContextEvent arg0) {
logger.info("QuartzListener監聽器初始化...");
try {
JobQuartz.task();
} catch (SchedulerException e) {
logger.warning("定時器監聽器初始化出錯...");
e.printStackTrace();
}
}
}
6.在web.xml中註冊監聽器
<!-- 定時器監聽器 -->
<listener>
<listener-class> com.egeniuss.jxibs.manage.io.timer.QuartzListener</listener-class>
</listener>
7.本程序還需要添加其它的jar包請自行添加
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.