郁闷,用junit测试quartz,无法正常运行

发布于 2021-12-08 14:25:15 字数 2073 浏览 799 评论 3

今天由于项目需要,重温一下quartz的使用,随手copy了一下代码,来个整体的感觉:

先是job的代码:

package com;

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

public class JobSchool implements Job {

	public void execute(JobExecutionContext arg0) throws JobExecutionException {
		// TODO Auto-generated method stub
		System.out.println("go to school***");
	}

}

然后是测试类的代码:

@Test 
public void test() throws SchedulerException{

	 SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();
	 Scheduler sched = schedFact.getScheduler();
         sched.start();

         JobDetail jobDetail = new JobDetail("myJob",Scheduler.DEFAULT_GROUP,job.class);
	 
         SimpleTrigger trigger = new SimpleTrigger("testTrigger", Scheduler.DEFAULT_GROUP);
         trigger.setRepeatCount(6);
	 trigger.setRepeatInterval(500);
	 trigger.setStartTime(Calendar.getInstance().getTime());  

	 sched.scheduleJob(jobDetail, trigger);
		
}

 测试结果:

 

很奇怪,明明设了执行六次,每次半秒间隔,但是执行结果确实让人摸不着头脑……
后来用一下的代码测试就行了:

public static void main(String[] a) throws SchedulerException{

	 SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();
	 Scheduler sched = schedFact.getScheduler();
         sched.start();

         JobDetail jobDetail = new JobDetail("myJob",Scheduler.DEFAULT_GROUP,job.class);
	 
         SimpleTrigger trigger = new SimpleTrigger("testTrigger", Scheduler.DEFAULT_GROUP);
         trigger.setRepeatCount(6);
	 trigger.setRepeatInterval(500);
	 trigger.setStartTime(Calendar.getInstance().getTime());  

	 sched.scheduleJob(jobDetail, trigger);
		
}

这到底是为什么啊,浪费我大量的时间啊

 

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

爱你是孤单的心事 2021-12-09 12:19:32

我也异步处理的时候碰到到这个问题,所以我在TEST方法用 SLEEP休眠一下。

如日中天 2021-12-09 12:06:52

junit测试在TestRunner类里开启main方法来进行对方法的测试,main方法里有System.exit();测试多线程时main线程会执行System.exist(),jvm就会结束运行,不执行其他线程

把昨日还给我 2021-12-08 23:25:52

可以把当前junit的方法sleep一段时间就行了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文