Quartz (二) Job任务

本文介绍了一个基于Quartz实现的简单定时任务程序。该程序通过TestJob类实现Job接口,并在主程序TestQuartz中设置调度规则,使TestJob每5秒执行一次并输出执行次数。文章提供完整的代码示例,帮助读者理解Quartz的基本使用。

简述:

在一的基础上实现一个定时输出的程序


项目结构:



代码:

TestJob.java 实现Job接口,定义输出

package com.anialy.tq;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class TestJob implements Job {
	private static int cnt = 0;
	
    public TestJob() {
        // Instances of Job must have a public no-argument constructor.
    }
	
	@Override
	public void execute(JobExecutionContext arg0) throws JobExecutionException {
		// TODO Auto-generated method stub
		System.out.println("TestJob " + (++cnt) + " Run! ");
	}
}


TestQurtz.java 主程序(注意要static导入包,同时将scheduler的shutdown注释掉)

package com.anialy.tq;

import static org.quartz.JobBuilder.newJob;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.quartz.TriggerBuilder.newTrigger;

import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.impl.StdSchedulerFactory;

public class TestQuartz {
    
	private static Scheduler scheduler;
    public static void main(String[] args) {

        try {
        	// Grab the Scheduler instance from the Factory 
        	scheduler = StdSchedulerFactory.getDefaultScheduler();

        	// Set Scheduler
        	setScheduler();

        	// and start it off
            scheduler.start();

            //shutdown to see the output of TestJob
//            scheduler.shutdown();  

        } catch (SchedulerException se) {
            se.printStackTrace();
        }
    }
    
    
    private static void setScheduler(){
        // define the job and tie it to our TestJob class
        JobDetail job = newJob(TestJob.class)
            .withIdentity("job1", "group1")
            .build();

        // Trigger the job to run now, and then repeat every 5 seconds
        Trigger trigger = newTrigger()
            .withIdentity("trigger1", "group1")
            .startNow()
            .withSchedule(simpleSchedule()
                    .withIntervalInSeconds(5)
                    .repeatForever())            
            .build();

        // Tell quartz to schedule the job using our trigger
        try {
			scheduler.scheduleJob(job, trigger);
		} catch (SchedulerException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
}


输出:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值