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包請自行添加


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章