Quartz实线定期运行程序(Java)

Quartz是一个大名鼎鼎的Java版开源定时调度器,功能强悍,使用方便。

这里写图片描述

如下是写的一个样例程序,定时输出 hello world:

package timeutil;
import java.text.SimpleDateFormat; 
import java.util.Date; 
import org.quartz.Job; 
import org.quartz.JobExecutionContext; 
import org.quartz.JobExecutionException; 
public class MyJob implements Job { 
    public void execute(JobExecutionContext arg0) throws JobExecutionException { 
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); 
        System.out.println("当前时间为:"+sdf.format(new Date())); 
        System.out.println("hello world");
    } 

} 
package timeutil;
import static org.quartz.CronScheduleBuilder.cronSchedule; 
import static org.quartz.JobBuilder.newJob; 
import static org.quartz.TriggerBuilder.newTrigger; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
import org.quartz.CronTrigger; 
import org.quartz.JobDetail; 
import org.quartz.Scheduler; 
import org.quartz.SchedulerFactory; 
import org.quartz.impl.StdSchedulerFactory; 

public class TimeUpdate { 
    public void go() throws Exception { 
        // 首先,必需要取得一个Scheduler的引用 
        SchedulerFactory sf = new StdSchedulerFactory(); 
        Scheduler sched = sf.getScheduler(); 
        //jobs可以在scheduled的sched.start()方法前被调用 
        //job 1将每隔20秒执行一次 
        JobDetail job = newJob(MyJob.class).withIdentity("job1", "group1").build(); 
        CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchedule(cronSchedule("0/20 * * * * ?")).build(); 
        Date ft = sched.scheduleJob(job, trigger); 
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS"); 
        System.out.println(job.getKey() + " 已被安排执行于: " + sdf.format(ft) + ",并且以如下重复规则重复执行: " + trigger.getCronExpression()); 
        sched.start(); 
    } 
    public static void main(String[] args) throws Exception { 
        TimeUpdate test = new TimeUpdate(); 
        test.go(); 
    } 

} 

/* 
-------------------------------------- 
    0 0 12 * * ?            每天12点触发 
    0 15 10 ? * *           每天10点15分触发 
    0 15 10 * * ?           每天10点15分触发 
    0 15 10 * * ? *         每天10点15分触发 
    0 15 10 * * ? 2005      2005年每天10点15分触发 
    0 * 14 * * ?            每天下午的 2点到2点59分每分触发 
    0 0/5 14 * * ?          每天下午的 2点到2点59分(整点开始,每隔5分触发) 
    0 0/5 14,18 * * ?       每天下午的 2点到2点59分(整点开始,每隔5分触发) 每天下午的 18点到18点59分(整点开始,每隔5分触发) 
    0 0-5 14 * * ?          每天下午的 2点到2点05分每分触发 
    0 10,44 14 ? 3 WED      3月分每周三下午的 2点10分和2点44分触发 
    0 15 10 ? * MON-FRI     从周一到周五每天上午的10点15分触发 
    0 15 10 15 * ?          每月15号上午10点15分触发 
    0 15 10 L * ?           每月最后一天的10点15分触发 
    0 15 10 ? * 6L          每月最后一周的星期五的10点15分触发 
    0 15 10 ? * 6L 2002-2005    从2002年到2005年每月最后一周的星期五的10点15分触发 
    0 15 10 ? * 6#3         每月的第三周的星期五开始触发 
    0 0 12 1/5 * ?          每月的第一个中午开始每隔5天触发一次 
    0 11 11 11 11 ?         每年的11月11号 11点11分触发(光棍节) 
-------------------------------------- 
 */  

在线Cron 表达式生成器地址为:http://www.pdtools.net/tools/becron.jsp
运行结果如下图所示:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值