通过Quartz实现定时任务

来源:互联网 发布:js数组对象转json 编辑:程序博客网 时间:2024/06/05 07:35

任务实体类

import java.text.SimpleDateFormat;import java.util.Date;import org.quartz.Job;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;/** *  * @author shiyufeng * @ClassDescription 任务实体 * @date Apr 19, 2017 */public class TestJob implements Job {    SimpleDateFormat DateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    Date d = new Date();    String curTime = DateFormat.format(d);    /**     * 执行的逻辑     */    public void execute(JobExecutionContext arg0) throws JobExecutionException {        System.out.println("任务执行★★★★★★★★★★★" + curTime);    }}

任务管理类

package com.ultrapower.selfcheck.server.service.job;import org.quartz.CronTrigger;import org.quartz.Job;import org.quartz.JobDetail;import org.quartz.Scheduler;import org.quartz.SchedulerException;import org.quartz.SchedulerFactory;import org.quartz.impl.StdSchedulerFactory;/** *  * @author shiyufeng * @ClassDescription 任务管类类 * @date Apr 19, 2017 */public class QuartzManager {    private static SchedulerFactory sf = new StdSchedulerFactory();    /**     * 添加任务     *      * @param jobName     *            任务名     * @param job     *            任务     * @param time     *            执行间隔     */    public static void addJob(String jobName, Job job, String time)            throws Exception {        // 获取任务调度器        Scheduler scheduler = sf.getScheduler();        JobDetail jobDetail = new JobDetail(jobName, "group1", job.getClass());// 任务名,任务组,任务执行类        // 初始化触发器        CronTrigger trigger = new CronTrigger(jobName, "trigger1");// 触发器名,触发器组        // 触发器时间设定        trigger.setCronExpression(time);        scheduler.scheduleJob(jobDetail, trigger);        // 启动任务        scheduler.start();    }    /**     * 移除任务     *      * @param jobName     *            任务名称     */    public static void removeJob(String jobName) throws SchedulerException {        Scheduler sched = sf.getScheduler();        sched.pauseTrigger(jobName, "trigger1");// 停止触发器        sched.unscheduleJob(jobName, "trigger1");// 移除触发器        sched.deleteJob(jobName, "group1");// 删除任务    }}

任务测试类

package com.ultrapower.selfcheck.server.service.job;/** *  * @author shiyufeng * @ClassDescription 任务测试类 * @date Apr 19, 2017 */public class QuartzTest {    public static void main(String[] args) {        TestJob job = new TestJob();        String job_name = "11";        try {            System.out.println("【系统启动】");            // 每2秒钟执行一次            QuartzManager.addJob(job_name, job, "0/2 * * * * ?");            // 执行10秒钟            Thread.sleep(10000);            System.out.println("【移除定时】");            QuartzManager.removeJob(job_name);        } catch (Exception e) {            e.printStackTrace();        }    }}
0 0
原创粉丝点击