问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java quartz job 执行时间配置3

发布网友 发布时间:2023-10-12 06:26

我来回答

1个回答

热心网友 时间:2024-11-18 17:34

  第一步:引包
  要使用Quartz,必须要引入以下这几个包:
  1、log4j-1.2.16
  2、quartz-2.1.7
  3、slf4j-api-1.6.1.jar
  4、slf4j-log4j12-1.6.1.jar
  这些包都在下载的Quartz包里面包含着,因此没有必要为寻找这几个包而头疼。
  第二步:创建要被定执行的任务类
  这一步也很简单,只需要创建一个实现了org.quartz.Job接口的类,并实现这个接口的唯一一个方法execute(JobExecutionContext arg0) throws JobExecutionException即可。如:
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 {

@Override
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()));
}

}
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 {

@Override
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()));
}

}

  这个例子很简单,就不用解说了。

  第三步:创建任务调度,并执行
  这一步应该算是最难的一步的,但其实是非常简单的,直接上代码

  
import static org.quartz.CronScheleBuilder.cronSchele;
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.Scheler;
import org.quartz.SchelerFactory;
import org.quartz.impl.StdSchelerFactory;

public class Test {
public void go() throws Exception {
// 首先,必需要取得一个Scheler的引用
SchelerFactory sf = new StdSchelerFactory();
Scheler sched = sf.getScheler();
//jobs可以在scheled的sched.start()方法前被调用

//job 1将每隔20秒执行一次
JobDetail job = newJob(myJob.class).withIdentity("job1", "group1").build();
CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchele(cronSchele("0/20 * * * * ?")).build();
Date ft = sched.scheleJob(job, trigger);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
System.out.println(job.getKey() + " 已被安排执行于: " + sdf.format(ft) + ",并且以如下重复规则重复执行: " + trigger.getCronExpression());

// job 2将每2分钟执行一次(在该分钟的第15秒)
job = newJob(myJob.class).withIdentity("job2", "group1").build();
trigger = newTrigger().withIdentity("trigger2", "group1").withSchele(cronSchele("15 0/2 * * * ?")).build();
ft = sched.scheleJob(job, trigger);
System.out.println(job.getKey() + " 已被安排执行于: " + sdf.format(ft) + ",并且以如下重复规则重复执行: "+ trigger.getCronExpression());

// 开始执行,start()方法被调用后,计时器就开始工作,计时调度中允许放入N个Job
sched.start();
try {
//主线程等待一分钟
Thread.sleep(60L * 1000L);
} catch (Exception e) {}
//关闭定时调度,定时器不再工作
sched.shutdown(true);
}

public static void main(String[] args) throws Exception {

Test test = new Test();
test.go();
}

}
import static org.quartz.CronScheleBuilder.cronSchele;
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.Scheler;
import org.quartz.SchelerFactory;
import org.quartz.impl.StdSchelerFactory;

public class Test {
public void go() throws Exception {
// 首先,必需要取得一个Scheler的引用
SchelerFactory sf = new StdSchelerFactory();
Scheler sched = sf.getScheler();
//jobs可以在scheled的sched.start()方法前被调用

//job 1将每隔20秒执行一次
JobDetail job = newJob(myJob.class).withIdentity("job1", "group1").build();
CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchele(cronSchele("0/20 * * * * ?")).build();
Date ft = sched.scheleJob(job, trigger);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
System.out.println(job.getKey() + " 已被安排执行于: " + sdf.format(ft) + ",并且以如下重复规则重复执行: " + trigger.getCronExpression());

// job 2将每2分钟执行一次(在该分钟的第15秒)
job = newJob(myJob.class).withIdentity("job2", "group1").build();
trigger = newTrigger().withIdentity("trigger2", "group1").withSchele(cronSchele("15 0/2 * * * ?")).build();
ft = sched.scheleJob(job, trigger);
System.out.println(job.getKey() + " 已被安排执行于: " + sdf.format(ft) + ",并且以如下重复规则重复执行: "+ trigger.getCronExpression());

// 开始执行,start()方法被调用后,计时器就开始工作,计时调度中允许放入N个Job
sched.start();
try {
//主线程等待一分钟
Thread.sleep(60L * 1000L);
} catch (Exception e) {}
//关闭定时调度,定时器不再工作
sched.shutdown(true);
}

public static void main(String[] args) throws Exception {

Test test = new Test();
test.go();
}

}

  OK了,Job1和Job2就会被安排为定时执行了。此时程序是可以执行的了,但是可能会输出WARN级别日志,这是因为没有加log4j的配置文件,加上配置文件,就OK了。这里需要说明的地方只有一个,其它的可以直接Copy到您的项目里面。看代码:
CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchele(cronSchele("0/20 * * * * ?")).build();
CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1").withSchele(cronSchele("0/20 * * * * ?")).build();
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 绿萝扦插多少天后发芽 绿萝扦插多久发芽 扦插绿萝多久发芽 炖牛排骨的做法和配料 正字的篆体怎么写啊7 医生给我检查说我的血小板压积0.27她的参考值是0.12-0...4 谁有红楼梦里《枉凝眉》的古筝谱,不要太简单的谱子,要在六级以...5 小区物业管理的脏乱差车辆乱停乱放怎么办? 踩油门要松离合器吗 血小板计数4(极低),血小板比积0,其他均正常,请问各位这严...2 违反小区内管理车辆乱停乱放物业有权罚款吗?1 谁有枉凝眉古筝谱?标有指法的。急用,谢谢谢谢19 《呼啸山庄》txt下载,杨苡译版1 在java项目开发中的跑批是什么意思?42 为什么要杀魏延?35 戏王之王下载?求戏王之王在线视频观看地址?戏王之王下载? 长大了发现,所谓的亲戚和邻居好虚假,发现一切都假,我似乎感觉看透了,没... 戏王之王高清完整版下载地址1 坐高铁动车时可以带防晒喷雾什么的吗74 奥迪A4L与S4有什么区别?44 口袋妖怪究极绿宝石lly神在哪? 奥迪a4l与奥迪q5比较215 为什么我的鼠标滑轮键总是不灵啊。以前那坏了。这个才买的也不灵...2 打开CAD 出现 “acmgd.dll ARX命令中发现异常... 某住宅小区的物业公司为了解决区内车辆乱停乱放的状况,在住宅小...4 正字小篆字体怎么写,还有刘正这两个字的隶书写法,非常感谢!!...2 奥迪q3车的上时间如何设置?1 国产奥迪q3行车电脑怎么设置?1 奥迪q3汽车显示DIS菜单怎么退出? 被手机号绑定了,手机号不用了,微信上不去了,怎么办?3 有一部0几年的国产动画片,内容大概是一只具有魔法吧兔子(或者...11 怎样在电子白板中导入PPT?3 关于腿的成语有哪些4 唐朝是怎么实施均田制与租庸调法的? 万国觉醒零氪英雄推荐是? 口袋妖怪究极绿宝石ll儿童节版本基拉帝纳在哪抓6 日本留学回国后好就业吗?就业率怎么样12 属猴的男人和属猪的女人在一起合适吗?252 男属猴女属猪,能在一起吗?1 奥迪q3车上时间不准如何设置2 黑名单里面的彩信要怎样才能恢复8 人生不易,生活不易,且行且珍惜!什么意思132 狗狗的肚子一直在咕噜咕噜叫是怎么回事?26 狗狗肚子咕噜咕噜叫怎么回事94