org.quartz.impl.calendar.WeeklyCalendar Java Examples

The following examples show how to use org.quartz.impl.calendar.WeeklyCalendar. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: StoreTriggerTest.java    From quartz-redis-jobstore with Apache License 2.0 6 votes vote down vote up
@Test
public void resumeTrigger() throws Exception {
    // create and store a job and trigger
    JobDetail job = getJobDetail();
    jobStore.storeJob(job, false);
    CronTriggerImpl trigger = getCronTrigger("trigger1", "group1", job.getKey());
    trigger.computeFirstFireTime(new WeeklyCalendar());
    jobStore.storeTrigger(trigger, false);

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

    // resume the trigger
    jobStore.resumeTrigger(trigger.getKey());
    // the trigger state should now be NORMAL
    assertEquals(Trigger.TriggerState.NORMAL, jobStore.getTriggerState(trigger.getKey()));

    // attempt to resume the trigger, again
    jobStore.resumeTrigger(trigger.getKey());
    // the trigger state should not have changed
    assertEquals(Trigger.TriggerState.NORMAL, jobStore.getTriggerState(trigger.getKey()));
}
 
Example #2
Source File: BaseTest.java    From quartz-redis-jobstore with Apache License 2.0 5 votes vote down vote up
protected CronTriggerImpl getCronTrigger(final String name, final String group, final JobKey jobKey, String cron){
    CronTriggerImpl trigger = (CronTriggerImpl) TriggerBuilder.newTrigger()
            .forJob(jobKey)
            .withIdentity(name, group)
            .withSchedule(CronScheduleBuilder.cronSchedule(cron))
            .usingJobData("timeout", 5)
            .withDescription("A description!")
            .build();
    WeeklyCalendar calendar = new WeeklyCalendar();
    calendar.setDaysExcluded(new boolean[]{false, false, false, false, false, false, false, false, false});
    trigger.computeFirstFireTime(calendar);
    trigger.setCalendarName("testCalendar");
    return trigger;
}
 
Example #3
Source File: BaseTest.java    From quartz-redis-jobstore with Apache License 2.0 5 votes vote down vote up
protected Calendar getCalendar(){
    WeeklyCalendar calendar = new WeeklyCalendar();
    // exclude weekends
    calendar.setDayExcluded(1, true);
    calendar.setDayExcluded(7, true);
    calendar.setDescription("Only run on weekdays.");
    return calendar;
}
 
Example #4
Source File: StoreTriggerTest.java    From quartz-redis-jobstore with Apache License 2.0 4 votes vote down vote up
@Test
@SuppressWarnings("unchecked")
public void triggersFired() throws Exception {
    // store some jobs with triggers
    Map<JobDetail, Set<? extends Trigger>> jobsAndTriggers = getJobsAndTriggers(2, 2, 2, 2, "* * * * * ?");

    // disallow concurrent execution for one of the jobs
    Map.Entry<JobDetail, Set<? extends Trigger>> firstEntry = jobsAndTriggers.entrySet().iterator().next();
    JobDetail nonConcurrentKey = firstEntry.getKey().getJobBuilder().ofType(TestJobNonConcurrent.class).build();
    Set<? extends Trigger> nonConcurrentTriggers = firstEntry.getValue();
    jobsAndTriggers.remove(firstEntry.getKey());
    jobsAndTriggers.put(nonConcurrentKey, nonConcurrentTriggers);

    jobStore.storeCalendar("testCalendar", new WeeklyCalendar(), false, true);
    jobStore.storeJobsAndTriggers(jobsAndTriggers, false);

    List<OperableTrigger> acquiredTriggers = jobStore.acquireNextTriggers(System.currentTimeMillis() - 1000, 500, 4000);
    assertThat(acquiredTriggers, hasSize(13));

    int lockedTriggers = 0;
    // ensure that all triggers are in the NORMAL state and have been ACQUIRED
    for (Map.Entry<JobDetail, Set<? extends Trigger>> jobDetailSetEntry : jobsAndTriggers.entrySet()) {
        for (Trigger trigger : jobDetailSetEntry.getValue()) {
            assertEquals(Trigger.TriggerState.NORMAL, jobStore.getTriggerState(trigger.getKey()));
            String triggerHashKey = schema.triggerHashKey(trigger.getKey());
            if (jobDetailSetEntry.getKey().isConcurrentExectionDisallowed()) {
                if (jedis.zscore(schema.triggerStateKey(RedisTriggerState.ACQUIRED), triggerHashKey) != null) {
                    assertThat("acquired trigger should be locked", jedis.get(schema.triggerLockKey(schema.triggerKey(triggerHashKey))), notNullValue());
                    lockedTriggers++;
                } else {
                    assertThat("non-acquired trigger should not be locked", jedis.get(schema.triggerLockKey(schema.triggerKey(triggerHashKey))), nullValue());
                }
            } else {
                assertThat(jedis.zscore(schema.triggerStateKey(RedisTriggerState.ACQUIRED), triggerHashKey), not(nullValue()));
            }
        }
    }

    assertThat(lockedTriggers, equalTo(1));

    Set<? extends OperableTrigger> triggers = (Set<? extends  OperableTrigger>) new ArrayList<>(jobsAndTriggers.entrySet()).get(0).getValue();
    List<TriggerFiredResult> triggerFiredResults = jobStore.triggersFired(new ArrayList<>(triggers));
    assertThat("exactly one trigger fired for job with concurrent execution disallowed", triggerFiredResults, hasSize(1));

    triggers = (Set<? extends  OperableTrigger>) new ArrayList<>(jobsAndTriggers.entrySet()).get(1).getValue();
    triggerFiredResults = jobStore.triggersFired(new ArrayList<>(triggers));
    assertThat("all triggers fired for job with concurrent execution allowed", triggerFiredResults, hasSize(4));
}