Java暂停quartz_quartz 暂停后启动问题

在使用Quartz进行任务调度时,遇到了在暂停后重新启动时,Job的execute方法被连续多次调用的问题。代码示例显示了如何暂停和恢复Job及其触发器,但暂停后启动导致了意料之外的执行次数增加。寻求解决方案。

近日由于项目需要用到quartz组件实现调度管理功能,想要实现调度的启动和暂停以及恢复功能,但是暂停遇到问题

暂停后重新启动,会连续多次调用job中的execute方法。如果当前工作的处理时间过长必然会导致问题。代码如下,急求帮助

import java.util.Date;

import org.quartz.JobDetail;

import org.quartz.Scheduler;

import org.quartz.SchedulerException;

import org.quartz.SchedulerFactory;

import org.quartz.SimpleTrigger;

import org.quartz.impl.StdSchedulerFactory;

public class TestTwo {

/**

* @param args

*/

public static void main(String[] args) {

try {

SchedulerFactory sf = new StdSchedulerFactory();

Scheduler sched = sf.getScheduler();

JobDetail job = new JobDetail();

job.setJobClass(HelloJob.class);

job.setGroup("jobgourp");

job.setName("jobname");

SimpleTrigger striger=new SimpleTrigger();

striger.setName("strigername");

striger.setStartTime(new Date());

striger.setRepeatInterval(1000);

striger.setRepeatCount(-1);

striger.setJobName("jobname");

striger.setJobGroup("jobgourp");

sched.scheduleJob(job, striger);

sched.start();

//-------------------------------------------------------

Thread.sleep(4000);

System.out.println("暂停");

sched.pauseJobGroup("jobgourp");

sched.pauseTriggerGroup("jobgourp");

Thread.sleep(5000);

System.out.println("暂停结束");

sched.resumeJobGroup("jobgourp");

sched.resumeTriggerGroup("jobgourp");

sched.start();

Thread.sleep(4800);

sched.shutdown(true);

} catch (SchedulerException e) {

e.printStackTrace();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

job 类代码如下

package com.scy.quartz.test;

import java.text.SimpleDateFormat;

import java.util.Date;

import org.quartz.Job;

import org.quartz.JobExecutionContext;

import org.quartz.JobExecutionException;

public class HelloJob implements Job {

@Override

public void execute(JobExecutionContext arg0) throws JobExecutionException {

System.out.println("HelloJob 执行了"+new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()));

}

}

HelloJob 执行了2012-08-11 12:57:16

HelloJob 执行了2012-08-11 12:57:17

HelloJob 执行了2012-08-11 12:57:18

HelloJob 执行了2012-08-11 12:57:19

暂停

暂停结束

———-????———–

HelloJob 执行了2012-08-11 12:57:25

HelloJob 执行了2012-08-11 12:57:25

HelloJob 执行了2012-08-11 12:57:25

HelloJob 执行了2012-08-11 12:57:25

HelloJob 执行了2012-08-11 12:57:25

HelloJob 执行了2012-08-11 12:57:25

———-????———–

HelloJob 执行了2012-08-11 12:57:26

HelloJob 执行了2012-08-11 12:57:27

HelloJob 执行了2012-08-11 12:57:28

HelloJob 执行了2012-08-11 12:57:29

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值