Java 类org.quartz.DateBuilder 实例源码

项目:xvms    文件:serverTasks.java   
public serverTasks() throws SchedulerException, ParseException{

    /* 
     * 循环式的
     */
    SchedulerFactory factory = new StdSchedulerFactory();
    Scheduler scheduler = factory.getScheduler();
    //设置启动时间
    DateBuilder.evenMinuteDate(new Date());
    JobDetail job = JobBuilder.newJob(job.class).withIdentity("job1", "group1").build();

    //job.getJobDataMap().put("a", true);//实现传参
    // @NOTICE
    // 与SimpleTrigger对比:类不同了,现在的是Trigger的子类CronTrigger;withSchedule中的参数变为CronScheduleBuilder了
    // CronScheduleBuilder可以通过类似"0/13 * * * * ?"这种表达式来创建定时任务
    // 当前这个表达式的定义是30分钟执行一次
    CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")
            .withSchedule(CronScheduleBuilder.cronSchedule("1 0/30 * * * ?")).build();

    scheduler.scheduleJob(job, trigger);

    scheduler.start();

    //scheduler.shutdown(true);

}
项目:abhot    文件:RollUpManager.java   
private static DateBuilder.IntervalUnit toIntervalUnit(TimeUnit unit)
{
    switch (unit)
    {
        case MILLISECONDS:
            return DateBuilder.IntervalUnit.MILLISECOND;
        case SECONDS:
            return DateBuilder.IntervalUnit.SECOND;
        case MINUTES:
            return DateBuilder.IntervalUnit.MINUTE;
        case HOURS:
            return DateBuilder.IntervalUnit.HOUR;
        case DAYS:
            return DateBuilder.IntervalUnit.DAY;
        case WEEKS:
            return DateBuilder.IntervalUnit.WEEK;
        case MONTHS:
            return DateBuilder.IntervalUnit.MONTH;
        case YEARS:
            return DateBuilder.IntervalUnit.YEAR;
        default:
            checkState(false, "Invalid time unit" + unit);
            return null;
    }
}
项目:quartz-scheduler-hazelcast-jobstore    文件:TriggerWrapper.java   
private TriggerWrapper(OperableTrigger trigger, TriggerState state) {

        if (trigger == null) {
            throw new IllegalArgumentException("Trigger cannot be null!");
        }
        this.trigger = trigger;
        key = trigger.getKey();
        this.jobKey = trigger.getJobKey();
        this.state = state;

        // Change to normal if acquired is not released in 5 seconds
        if (state == TriggerState.ACQUIRED) {
            acquiredAt = DateBuilder.newDate().build().getTime();
        } else {
            acquiredAt = null;
        }
    }
项目:red5-server-common    文件:QuartzSchedulingService.java   
/** {@inheritDoc} */
public String addScheduledJob(int interval, IScheduledJob job) {
    String name = getJobName();
    // Store reference to applications job and service      
    JobDataMap jobData = new JobDataMap();
    jobData.put(QuartzSchedulingServiceJob.SCHEDULING_SERVICE, this);
    jobData.put(QuartzSchedulingServiceJob.SCHEDULED_JOB, job);
    // detail
    JobDetail jobDetail = JobBuilder.newJob(QuartzSchedulingServiceJob.class).withIdentity(name).usingJobData(jobData).build();
    // create trigger that fires indefinitely every <interval> milliseconds
    Trigger trigger = TriggerBuilder.newTrigger().withIdentity(String.format("Trigger_%s", name)).startAt(DateBuilder.futureDate(1, IntervalUnit.MILLISECOND)).forJob(jobDetail).withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInMilliseconds(interval).repeatForever()).build();
    // store keys by name
    TriggerKey tKey = trigger.getKey();
    JobKey jKey = trigger.getJobKey();
    log.debug("Job key: {} Trigger key: {}", jKey, tKey);
    ScheduledJobKey key = new ScheduledJobKey(tKey, jKey);
    keyMap.put(name, key);
    // schedule
    scheduleJob(trigger, jobDetail);
    return name;
}
项目:red5-server-common    文件:QuartzSchedulingService.java   
/** {@inheritDoc} */
public String addScheduledJobAfterDelay(int interval, IScheduledJob job, int delay) {
    String name = getJobName();
    // Store reference to applications job and service      
    JobDataMap jobData = new JobDataMap();
    jobData.put(QuartzSchedulingServiceJob.SCHEDULING_SERVICE, this);
    jobData.put(QuartzSchedulingServiceJob.SCHEDULED_JOB, job);
    // detail
    JobDetail jobDetail = JobBuilder.newJob(QuartzSchedulingServiceJob.class).withIdentity(name, null).usingJobData(jobData).build();
    // Create trigger that fires indefinitely every <interval> milliseconds
    Trigger trigger = TriggerBuilder.newTrigger().withIdentity(String.format("Trigger_%s", name)).startAt(DateBuilder.futureDate(delay, IntervalUnit.MILLISECOND)).forJob(jobDetail).withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInMilliseconds(interval).repeatForever()).build();
    // store keys by name
    TriggerKey tKey = trigger.getKey();
    JobKey jKey = trigger.getJobKey();
    log.debug("Job key: {} Trigger key: {}", jKey, tKey);
    ScheduledJobKey key = new ScheduledJobKey(tKey, jKey);
    keyMap.put(name, key);
    // schedule
    scheduleJob(trigger, jobDetail);
    return name;
}
项目:lams    文件:DailyTimeIntervalTriggerImpl.java   
/**
 * <p>
 * Called by the scheduler at the time a <code>Trigger</code> is first
 * added to the scheduler, in order to have the <code>Trigger</code>
 * compute its first fire time, based on any associated calendar.
 * </p>
 * 
 * <p>
 * After this method has been called, <code>getNextFireTime()</code>
 * should return a valid answer.
 * </p>
 * 
 * @return the first time at which the <code>Trigger</code> will be fired
 *         by the scheduler, which is also the same value <code>getNextFireTime()</code>
 *         will return (until after the first firing of the <code>Trigger</code>).
 *         </p>
 */
@Override
public Date computeFirstFireTime(org.quartz.Calendar calendar) {
  Date sTime = getStartTime();
  Date startTimeOfDayDate = getStartTimeOfDay().getTimeOfDayForDate(sTime);

  if(DateBuilder.evenSecondDate(startTime).equals(startTimeOfDayDate)) {
    return startTime;
  }
  else if (sTime.after(startTimeOfDayDate)) {
    // If startTime is after the timeOfDay, then look for the next time
    nextFireTime = getFireTimeAfter(sTime);
  } else {
    // If startTime is before the timeOfDay then advance to timeOfDay (and if necessary dayOfWeek)
    nextFireTime = advanceToNextDayOfWeekIfNecessary(startTimeOfDayDate, false);
  }

  // Check calendar for date-time exclusion
  while (nextFireTime != null && calendar != null
          && !calendar.isTimeIncluded(nextFireTime.getTime())) {

      nextFireTime = getFireTimeAfter(nextFireTime);

      if(nextFireTime == null)
          break;

      //avoid infinite loop
      java.util.Calendar c = java.util.Calendar.getInstance();
      c.setTime(nextFireTime);
      if (c.get(java.util.Calendar.YEAR) > YEAR_TO_GIVEUP_SCHEDULING_AT) {
          return null;
      }
  }

  return nextFireTime;
}
项目:nest-spider    文件:CommonSpiderService.java   
public String exportQuartz() {
    Map<String, Long> result = new HashMap<>();
    for(JobKey key:manager.listAll(QUARTZ_JOB_GROUP_NAME)) {
        Pair<JobDetail, Trigger> pair = manager.findInfo(key);
        String name = ((SpiderInfo)pair.getLeft().getJobDataMap().get("spiderInfo")).getId();
        Long hours = ((SimpleTrigger)((SimpleScheduleBuilder)pair.getRight().getScheduleBuilder()).build()).getRepeatInterval()/DateBuilder.MILLISECONDS_IN_HOUR;
        result.put(name, hours);
    }
    return gson.toJson(result);
}
项目:abhot    文件:RollUpManager.java   
@SuppressWarnings("ConstantConditions")
static Trigger createTrigger(RollupTask task)
{
    Duration executionInterval = task.getExecutionInterval();
    return newTrigger()
            .withIdentity(task.getId(), GROUP_ID)
            .startAt(DateBuilder.futureDate((int) executionInterval.getValue(), toIntervalUnit(executionInterval.getUnit())))
            .withSchedule(calendarIntervalSchedule()
                    .withInterval((int) executionInterval.getValue(), toIntervalUnit(executionInterval.getUnit())))
            .build();
}
项目:osa    文件:TaskScheduler.java   
public void start() throws SchedulerException {

    JobDetail job = JobBuilder.newJob(ScheduleExecutor.class)
              .withIdentity(jobname, "group1")
              .requestRecovery()
              .usingJobData("configPath", configPath)
              .usingJobData("logDirectory", logDirectory)
              .build();

    // schedule
    int timeInterval = 1;
    SimpleScheduleBuilder simpleScheduleBuilder = null;
    simpleScheduleBuilder = SimpleScheduleBuilder.simpleSchedule();
    simpleScheduleBuilder.withIntervalInHours(timeInterval * 24).repeatForever();

    Trigger trigger = TriggerBuilder
            .newTrigger()
            .withIdentity(triggername, "group1")
            .withSchedule(simpleScheduleBuilder)
            .startAt(DateBuilder.dateOf(23, 55, 0))
            .forJob(job)
            .build();

    scheduler = new StdSchedulerFactory(configPath+"config/quartz.properties").getScheduler();
    scheduler.start();
    scheduler.scheduleJob(job, trigger);

}
项目:quartz-scheduler-hazelcast-jobstore    文件:HazelcastJobStore.java   
private boolean applyMisfire(TriggerWrapper tw)
  throws JobPersistenceException {

  long misfireTime = DateBuilder.newDate().build().getTime();
  if (misfireThreshold > 0) {
    misfireTime -= misfireThreshold;
  }

  Date tnft = tw.trigger.getNextFireTime();

  if (tnft == null
      || tnft.getTime() > misfireTime
      || tw.trigger.getMisfireInstruction() == Trigger.MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY) {
    return false;
  }

  Calendar cal = null;
  if (tw.trigger.getCalendarName() != null) {
    cal = retrieveCalendar(tw.trigger.getCalendarName());
  }

  this.schedSignaler
      .notifyTriggerListenersMisfired((OperableTrigger) tw.trigger.clone());

  tw.trigger.updateAfterMisfire(cal);

  if (tw.trigger.getNextFireTime() == null) {
    storeTriggerWrapper(newTriggerWrapper(tw, STATE_COMPLETED));
    schedSignaler.notifySchedulerListenersFinalized(tw.trigger);

  } else if (tnft.equals(tw.trigger.getNextFireTime())) {
    return false;
  }

  return true;
}
项目:quartz-scheduler-hazelcast-jobstore    文件:HazelcastJobStoreTest.java   
@Test
public void testAcquireNextTrigger()
  throws Exception {

  long baseFireTime = DateBuilder.newDate().build().getTime();

  JobDetail job = JobBuilder.newJob(NoOpJob.class).build();
  jobStore.storeJob(job, true);

  OperableTrigger t1 = buildAndComputeTrigger("trigger1", "testAcquireNextTrigger", job, baseFireTime + 2000);
  OperableTrigger t2 = buildAndComputeTrigger("trigger2", "testAcquireNextTrigger", job, baseFireTime + 500);
  OperableTrigger t3 = buildAndComputeTrigger("trigger3", "testAcquireNextTrigger", job, baseFireTime + 1000);

  assertTrue(jobStore.acquireNextTriggers(baseFireTime, 1, 0L).isEmpty());

  jobStore.storeTrigger(t1, false);
  assertEquals(jobStore.acquireNextTriggers(baseFireTime + 2000, 1, 0L).get(0), t1);

  jobStore.storeTrigger(t2, false);
  assertEquals(jobStore.acquireNextTriggers(baseFireTime + 600, 1, 0L).get(0), t2);

  assertTrue(jobStore.acquireNextTriggers(baseFireTime + 600, 1, 0L).isEmpty());

  jobStore.storeTrigger(t3, false);
  assertEquals(jobStore.acquireNextTriggers(baseFireTime + 5000, 1, 0L).get(0), t3);

  // release trigger3
  jobStore.releaseAcquiredTrigger(t3);
  assertEquals(jobStore.acquireNextTriggers(t3.getNextFireTime().getTime() + 5000, 1, 1L).get(0), t3);

  assertTrue(jobStore.acquireNextTriggers(baseFireTime + 10000, 1, 0L).isEmpty());

  jobStore.removeTrigger(t1.getKey());
  jobStore.removeTrigger(t2.getKey());
  jobStore.removeTrigger(t3.getKey());
}
项目:quartz-scheduler-hazelcast-jobstore    文件:HazelcastJobStoreTest.java   
@Test
public void testTriggersFired()
  throws Exception {

  long baseFireTime = DateBuilder.newDate().build().getTime();

  JobDetail newJob = JobBuilder.newJob(NoOpJob.class).withIdentity("job1", "testTriggersFired").build();

  jobStore.storeJob(newJob, false);

  OperableTrigger trigger1 = buildAndComputeTrigger("triggerFired1",
      "triggerFiredGroup",
      newJob,
      baseFireTime + 100,
      baseFireTime + 100);

  jobStore.storeTrigger(trigger1, false);

  long firstFireTime = new Date(trigger1.getNextFireTime().getTime()).getTime();

  List<OperableTrigger> acquiredTriggers = jobStore.acquireNextTriggers(firstFireTime + 500, 1, 0L);
  assertEquals(acquiredTriggers.size(), 1);

  List<TriggerFiredResult> triggerFired = jobStore.triggersFired(acquiredTriggers);
  assertEquals(triggerFired.size(), 1);

  assertTrue(jobStore.checkExists(trigger1.getKey()));
  assertEquals(jobStore.getTriggerState(trigger1.getKey()), Trigger.TriggerState.COMPLETE);
  jobStore.removeTrigger(trigger1.getKey());
}
项目:osa    文件:TaskScheduler.java   
public void start() throws SchedulerException {

    JobDetail job = JobBuilder.newJob(ScheduleExecutor.class)
              .withIdentity(jobname, "group1")
              .requestRecovery()
              .usingJobData("configPath", configPath)
              .usingJobData("logDirectory", logDirectory)
              .build();

    // schedule
    int timeInterval = 1;
    SimpleScheduleBuilder simpleScheduleBuilder = null;
    simpleScheduleBuilder = SimpleScheduleBuilder.simpleSchedule();
    simpleScheduleBuilder.withIntervalInHours(timeInterval * 24).repeatForever();

    Trigger trigger = TriggerBuilder
            .newTrigger()
            .withIdentity(triggername, "group1")
            .withSchedule(simpleScheduleBuilder)
            .startAt(DateBuilder.dateOf(23, 55, 0))
            .forJob(job)
            .build();

    scheduler = new StdSchedulerFactory(configPath+"config/quartz.properties").getScheduler();
    scheduler.start();
    scheduler.scheduleJob(job, trigger);

}
项目:hypersocket-framework    文件:SchedulerServiceImpl.java   
@Override
public String scheduleIn(Class<? extends Job> clz, JobDataMap data,
        int millis, int interval) throws SchedulerException {
    return schedule(clz, data, DateBuilder.futureDate(millis,
            DateBuilder.IntervalUnit.MILLISECOND), interval,
            SimpleTrigger.REPEAT_INDEFINITELY, null);
}
项目:hypersocket-framework    文件:SchedulerServiceImpl.java   
@Override
public String scheduleIn(Class<? extends Job> clz, JobDataMap data,
        int millis, int interval, Date ends) throws SchedulerException {
    return schedule(clz, data, DateBuilder.futureDate(millis,
            DateBuilder.IntervalUnit.MILLISECOND), interval,
            SimpleTrigger.REPEAT_INDEFINITELY, ends);
}
项目:openhab1-addons    文件:CalDavLoaderImpl.java   
public void startLoading() {
    if (execService != null) {
        return;
    }
    log.trace("starting execution...");

    int i = 0;
    for (final CalendarRuntime eventRuntime : EventStorage.getInstance().getEventCache().values()) {
        try {
            JobDetail job = JobBuilder.newJob().ofType(EventReloaderJob.class)
                    .usingJobData(EventReloaderJob.KEY_CONFIG, eventRuntime.getConfig().getKey())
                    .withIdentity(eventRuntime.getConfig().getKey(), JOB_NAME_EVENT_RELOADER).storeDurably()
                    .build();
            this.scheduler.addJob(job, false);
            SimpleTrigger jobTrigger = TriggerBuilder.newTrigger().forJob(job)
                    .withIdentity(eventRuntime.getConfig().getKey(), JOB_NAME_EVENT_RELOADER)
                    .startAt(DateBuilder.futureDate(10 + i, IntervalUnit.SECOND)).withSchedule(SimpleScheduleBuilder
                            .repeatMinutelyForever(eventRuntime.getConfig().getReloadMinutes()))
                    .build();
            this.scheduler.scheduleJob(jobTrigger);
            log.info("reload job scheduled for: {}", eventRuntime.getConfig().getKey());
        } catch (SchedulerException e) {
            log.warn("Cannot schedule calendar reloader", e);
        }
        // next event 10 seconds later
        i += 10;
    }

}
项目:SensorWebClient    文件:ScheduledJob.java   
public Trigger createTrigger(JobKey jobKey) {
    TriggerBuilder tb = newTrigger()
            .forJob(jobKey)
            .withIdentity(getTriggerName());
    if (getCronExpression() != null) {
        tb.withSchedule(cronSchedule(getCronExpression()));
    }

    if (isTriggerAtStartup()) {
        tb.startAt(futureDate(5, DateBuilder.IntervalUnit.SECOND));
    }
    return tb.build();
}
项目:path-optimizer    文件:WebApi.java   
private Scheduler createUpdateWeatherDataScheduler(int interval,
        TimeUnit unit, ResourceBinder resourceBinder, int startDelay)
        throws SchedulerException, IOException, URISyntaxException {

    StdSchedulerFactory schedulerFactory = new StdSchedulerFactory();
    Properties properties = new Properties();
    properties.setProperty("org.quartz.threadPool.threadCount",
            String.valueOf(1));
    schedulerFactory.initialize(properties);

    Scheduler scheduler = schedulerFactory.getScheduler();

    JobDetail job = JobBuilder.newJob(UpdateWeatherData.class).build();

    job.getJobDataMap().put("baseDir", ResourceBinder
            .getDataDir(this.getClass()).toFile().getCanonicalPath());
    job.getJobDataMap().put("resourceBinder", resourceBinder);

    int secs = 60;
    switch (unit) {
    case HOUR:
        secs = interval * 60 * 60;
        break;
    case MINUTE:
        secs = interval * 60;
    case SECOND:
        secs = interval;
        break;
    default:
        break;
    }

    ScheduleBuilder<SimpleTrigger> scheduleBuilder = SimpleScheduleBuilder
            .simpleSchedule().withIntervalInSeconds(secs).repeatForever();

    TriggerBuilder<Trigger> triggerBuilder = TriggerBuilder.newTrigger()
            .withIdentity("trigger1", "group1");

    if (startDelay < 1)
        triggerBuilder.startNow();
    else
        triggerBuilder.startAt(
                DateBuilder.futureDate(startDelay, IntervalUnit.SECOND));

    Trigger trigger = triggerBuilder.withSchedule(scheduleBuilder).build();

    scheduler.scheduleJob(job, trigger);

    return scheduler;

}
项目:nexus-public    文件:JobStoreImplTest.java   
@Test
public void testAcquireNextTrigger() throws Exception {
  JobDetail jobDetail = JobBuilder.newJob(MyJob.class).withIdentity("job1", "jobGroup1").storeDurably(true).build();
  this.jobStore.storeJob(jobDetail, false);

  Date baseFireTimeDate = DateBuilder.evenMinuteDateAfterNow();
  long baseFireTime = baseFireTimeDate.getTime();

  OperableTrigger trigger1 =
      new SimpleTriggerImpl("trigger1", "triggerGroup1", jobDetail.getKey().getName(),
          jobDetail.getKey().getGroup(), new Date(baseFireTime + 200000),
          new Date(baseFireTime + 200000), 2, 2000);
  OperableTrigger trigger2 =
      new SimpleTriggerImpl("trigger2", "triggerGroup1", jobDetail.getKey().getName(),
          jobDetail.getKey().getGroup(), new Date(baseFireTime + 50000),
          new Date(baseFireTime + 200000), 2, 2000);
  OperableTrigger trigger3 =
      new SimpleTriggerImpl("trigger1", "triggerGroup2", jobDetail.getKey().getName(),
          jobDetail.getKey().getGroup(), new Date(baseFireTime + 100000),
          new Date(baseFireTime + 200000), 2, 2000);

  trigger1.computeFirstFireTime(null);
  trigger2.computeFirstFireTime(null);
  trigger3.computeFirstFireTime(null);
  this.jobStore.storeTrigger(trigger1, false);
  this.jobStore.storeTrigger(trigger2, false);
  this.jobStore.storeTrigger(trigger3, false);

  long firstFireTime = new Date(trigger1.getNextFireTime().getTime()).getTime();

  assertTrue(this.jobStore.acquireNextTriggers(10, 1, 0L).isEmpty());
  assertEquals(
      trigger2.getKey(),
      this.jobStore.acquireNextTriggers(firstFireTime + 10000, 1, 0L).get(0).getKey());
  assertEquals(
      trigger3.getKey(),
      this.jobStore.acquireNextTriggers(firstFireTime + 10000, 1, 0L).get(0).getKey());
  assertEquals(
      trigger1.getKey(),
      this.jobStore.acquireNextTriggers(firstFireTime + 10000, 1, 0L).get(0).getKey());
  assertTrue(
      this.jobStore.acquireNextTriggers(firstFireTime + 10000, 1, 0L).isEmpty());


  // release trigger3
  this.jobStore.releaseAcquiredTrigger(trigger3);
  assertEquals(
      trigger3,
      this.jobStore.acquireNextTriggers(new Date(trigger1.getNextFireTime().getTime()).getTime() + 10000, 1, 1L)
          .get(0));
}
项目:quartz-scheduler-hazelcast-jobstore    文件:HazelcastJobStoreTest.java   
@Test
public void testTriggerStates()
  throws Exception {

  JobDetail newJob = JobBuilder.newJob(NoOpJob.class).withIdentity("job1", "testTriggerStates").build();
  jobStore.storeJob(newJob, false);

  OperableTrigger trigger = buildTrigger("trigger1",
      "testTriggerStates",
      newJob,
      DateBuilder.newDate().build().getTime() + 1000,
      DateBuilder.newDate().build().getTime() + 2000);

  trigger.computeFirstFireTime(null);

  assertEquals(jobStore.getTriggerState(trigger.getKey()), Trigger.TriggerState.NONE);

  jobStore.storeTrigger(trigger, false);
  assertEquals(jobStore.getTriggerState(trigger.getKey()), Trigger.TriggerState.NORMAL);

  jobStore.pauseTrigger(trigger.getKey());
  assertEquals(jobStore.getTriggerState(trigger.getKey()), Trigger.TriggerState.PAUSED);

  jobStore.resumeTrigger(trigger.getKey());
  assertEquals(jobStore.getTriggerState(trigger.getKey()), Trigger.TriggerState.NORMAL);

  OperableTrigger rt1 = jobStore.acquireNextTriggers(
      new Date(trigger.getNextFireTime().getTime()).getTime() + 10000,
      1,
      1L)
      .get(0);
  assertNotNull(rt1);
  jobStore.releaseAcquiredTrigger(rt1);

  OperableTrigger rt2 = jobStore.acquireNextTriggers(
      new Date(rt1.getNextFireTime().getTime()).getTime() + 1500,
      1,
      1L)
      .get(0);

  assertNotNull(rt2);
  assertEquals(rt2.getJobKey(), rt1.getJobKey());

  assertTrue(jobStore.acquireNextTriggers(new Date(rt2.getNextFireTime().getTime()).getTime() + 1500,
      1,
      1L)
      .isEmpty());
}
项目:quartz-hazelcast-jobstore    文件:TestHazelcastJobStore.java   
@Test()
public void testAcquireNextTrigger() throws Exception {

  Date baseFireTimeDate = DateBuilder.evenMinuteDateAfterNow();
  long baseFireTime = baseFireTimeDate.getTime();

  this.jobStore.storeJob(fJobDetail, false);

  OperableTrigger trigger1 = new SimpleTriggerImpl("trigger1",
      "triggerGroup1", this.fJobDetail.getName(), this.fJobDetail.getGroup(),
      new Date(baseFireTime + 200000), new Date(baseFireTime + 200000), 2,
      2000);
  OperableTrigger trigger2 = new SimpleTriggerImpl("trigger2",
      "triggerGroup1", this.fJobDetail.getName(), this.fJobDetail.getGroup(),
      new Date(baseFireTime + 50000), new Date(baseFireTime + 200000), 2,
      2000);
  OperableTrigger trigger3 = new SimpleTriggerImpl("trigger1",
      "triggerGroup2", this.fJobDetail.getName(), this.fJobDetail.getGroup(),
      new Date(baseFireTime + 100000), new Date(baseFireTime + 200000), 2,
      2000);

  trigger1.computeFirstFireTime(null);
  trigger2.computeFirstFireTime(null);
  trigger3.computeFirstFireTime(null);

  long firstFireTime = new Date(trigger1.getNextFireTime().getTime())
      .getTime();

  assertTrue(this.jobStore.acquireNextTriggers(10, 1, 0L).isEmpty());

  this.jobStore.storeTrigger(trigger2, false);
  assertEquals(trigger2.getKey(),
      this.jobStore.acquireNextTriggers(firstFireTime + 10000, 1, 0L).get(0)
          .getKey());

  this.jobStore.storeTrigger(trigger3, false);
  assertEquals(trigger3.getKey(),
      this.jobStore.acquireNextTriggers(firstFireTime + 10000, 1, 0L).get(0)
          .getKey());

  this.jobStore.storeTrigger(trigger1, false);
  assertEquals(trigger1.getKey(),
      this.jobStore.acquireNextTriggers(firstFireTime + 10000, 1, 0L).get(0)
          .getKey());

  assertTrue(this.jobStore.acquireNextTriggers(firstFireTime + 10000, 1, 0L)
      .isEmpty());

  // release trigger3
  this.jobStore.releaseAcquiredTrigger(trigger3);
  assertEquals(
      trigger3,
      this.jobStore.acquireNextTriggers(
          new Date(trigger1.getNextFireTime().getTime()).getTime() + 10000,
          1, 1L).get(0));

  jobStore.removeTrigger(trigger1.getKey());
  jobStore.removeTrigger(trigger2.getKey());
  jobStore.removeTrigger(trigger3.getKey());
}
项目:hypersocket-framework    文件:SchedulerServiceImpl.java   
@Override
public String scheduleIn(Class<? extends Job> clz, JobDataMap data,
        int millis, int interval, int repeat) throws SchedulerException {
    return scheduleAt(clz, data, DateBuilder.futureDate(millis,
            DateBuilder.IntervalUnit.MILLISECOND), interval, repeat);
}
项目:hypersocket-framework    文件:SchedulerServiceImpl.java   
@Override
public void rescheduleIn(String scheduleId, int millis, int interval,
        int repeat) throws SchedulerException, NotScheduledException {
    reschedule(scheduleId, DateBuilder.futureDate(millis,
            DateBuilder.IntervalUnit.MILLISECOND), interval, repeat, null);
}
项目:hypersocket-framework    文件:SchedulerServiceImpl.java   
@Override
public void rescheduleIn(String scheduleId, int millis, int interval)
        throws SchedulerException, NotScheduledException {
    reschedule(scheduleId, DateBuilder.futureDate(millis,
            DateBuilder.IntervalUnit.MILLISECOND), interval, 0, null);
}
项目:hypersocket-framework    文件:SchedulerServiceImpl.java   
@Override
public void rescheduleIn(String scheduleId, int millis)
        throws SchedulerException, NotScheduledException {
    reschedule(scheduleId, DateBuilder.futureDate(millis,
            DateBuilder.IntervalUnit.MILLISECOND), 0, 0, null);
}
项目:quartz-couchdb-store    文件:CouchDbCalendarIntervalTrigger.java   
@JsonProperty("repeat_interval_unit")
public DateBuilder.IntervalUnit getRepeatIntervalUnit() {
    return getBaseTrigger().getRepeatIntervalUnit();
}
项目:quartz-couchdb-store    文件:CouchDbCalendarIntervalTrigger.java   
@JsonProperty("repeat_interval_unit")
public void setRepeatIntervalUnit(DateBuilder.IntervalUnit unit) {
    getBaseTrigger().setRepeatIntervalUnit(unit);
}