quartz的简单使用

1、quartz的简单使用
1、首先引入一个调度器schedule
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler sched = sf.getScheduler();
2、计算下次的运行时间
Date runTime = evenMinuteDate(new Date());
3、定义一个与job相关的类(该类需实现Job接口)

​ job1为任务的名字,group为任务的组

JobDetail job = newJob(HelloJob.class).withIdentity("job1", "group1").build();
4、创建一个触发器
Trigger trigger = newTrigger().withIdentity("trigger1","group1").startAt(runTime).build();
5、告诉调度器使用触发器
sched.scheduleJob(job, trigger);
6、启动调度程序
sched.start();

​ 可选,线程休眠65秒

Thread.sleep(65L * 1000L);
2、简单触发器的使用
获取下一次的时间
Date startTime = DateBuilder.nextGivenSecondDate(null, 15);
简单触发器
SimpleTrigger trigger = (SimpleTrigger) newTrigger().withIdentity("trigger1", "group1").startAt(startTime).build();
job3将运行11次(运行一次,再重复10次,每次相隔10秒)
job = newJob(SimpleJob.class).withIdentity("job3", "group1").build();

trigger = newTrigger().withIdentity("trigger3", "group1").startAt(startTime)
    .withSchedule(simpleSchedule().withIntervalInSeconds(10).withRepeatCount(10)).build();
同一个任务可以被多个触发器调度
job5运行一次,在五分钟之后运行
trigger = (SimpleTrigger) newTrigger().withIdentity("trigger5", "group1")
    .startAt(futureDate(5, IntervalUnit.MINUTE)).build();
job6无限制运行,每隔40秒运行一次
trigger = newTrigger().withIdentity("trigger6", "group1").startAt(startTime)
    .withSchedule(simpleSchedule().withIntervalInSeconds(40).repeatForever()).build();
job7重复20次,每5分钟重复一次
trigger = newTrigger().withIdentity("trigger7", "group1").startAt(startTime)
    .withSchedule(simpleSchedule().withIntervalInMinutes(5).withRepeatCount(20)).build();
添加任务到调度器
sched.addJob(job, true);
手动触发任务
sched.triggerJob(jobKey("job8", "group1"));
重新调度任务
trigger = 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值