zoukankan      html  css  js  c++  java
  • Quartz,启动不立即执行问题

    我的Quartz 是2.2版本,

    在java程序中写了两个加入计划方法

    ////  添加简单计划任务 author:iresearch.com.cn -- jackical
     	public static void AddSimplejob(String jobName,String strTrigger,int id,int hour,int minute,Date DateStart) throws SchedulerException{
    		
    		Scheduler sched=sf.getScheduler();
    		
    		Calendar calendar=GregorianCalendar.getInstance();
    		calendar.setTime(DateStart);
    		int intYear= calendar.get(Calendar.YEAR);
    		int intMonth=calendar.get(Calendar.MONTH)+1;
    		int intDay=calendar.get(Calendar.DAY_OF_MONTH);
    		
    		Date runDate=DateBuilder.dateOf(hour, minute, 0,intDay,intMonth,intYear);   //////  设置执行的时间
    		
    		JobDetail jobDetail=JobBuilder.newJob(DoJob.class)
    				.withIdentity(jobName,JOB_GROUP_NAME)
    				.usingJobData("id",id)
    				.build();
    		
    		SimpleTrigger trigger=(SimpleTrigger)TriggerBuilder
    				.newTrigger()
    				.withIdentity(strTrigger,TRIGGER_GROUP_NAME)
    				.startAt(runDate)
    				.withSchedule(SimpleScheduleBuilder.simpleSchedule() 
    						.withIntervalInMinutes(3)
    						.withRepeatCount(0)
    						)
    				.build();
    		
    		/*
    		 * 				.withSchedule(SimpleScheduleBuilder.simpleSchedule()
    						.withIntervalInSeconds(10)
    						.withRepeatCount(0)
    						)
    		 * */
    		
    		sched.scheduleJob(jobDetail,trigger);
    		sched.start();
    	}
    	
    	/////  添加定时任务 author:iresearch.com.cn -- jackical 
     	public static void AddCronJob(String jobName,String strTrigger,int id,String strExp,Date DateStart,Date DateEnd) throws SchedulerException, ParseException{
    		
    		Scheduler sched=sf.getScheduler();
    		
    		JobDetail jobDetail=JobBuilder.newJob(DoJob.class)
    				.withIdentity(jobName,JOB_GROUP_NAME)
    				.usingJobData("id",id)
    				.build();
    		
    		Trigger trigger=(CronTrigger)TriggerBuilder
    				.newTrigger()
    				.withIdentity(strTrigger,TRIGGER_GROUP_NAME)
    				.startAt(DateStart)
    				.endAt(DateEnd)
    				.withSchedule(CronScheduleBuilder.cronSchedule(strExp)
    						.withMisfireHandlingInstructionDoNothing()
    						)
    				.build();
    		
    		
    		sched.scheduleJob(jobDetail,trigger);
    		sched.start();
    		
    	}
    

      

    发现这个使用simpleTrigger 的没有参数设置第一次启动时不执行 ....只有CromTrigger 有个参数可以设置第一次添加不执行计划 “withMisfireHandlingInstructionDoNothing()”

    转载请注时出处:http://www.cnblogs.com/jackicalSong/

    所以我的第一个方法就废了,但第二个方法一样可以用.....

  • 相关阅读:
    [译]微服务-Martin Fowler(转)
    SpringBoot注解最全详解(整合超详细版本)(转)
    操作系统中的句柄是什么?(转)
    用户态和核心态(转)
    进程、线程、协程(转)
    IO中同步与异步,阻塞与非阻塞区别(转)
    HTML5常见的取值与单位
    C++实现词法分析器
    用C语言编写一个简单的词法分析程序
    Java面向对象详解
  • 原文地址:https://www.cnblogs.com/jackicalSong/p/3922067.html
Copyright © 2011-2022 走看看