Package org.quartz.spi

Examples of org.quartz.spi.OperableTrigger


    public void run() {
        qs.addInternalSchedulerListener(this);

        try {
            OperableTrigger trigger = (OperableTrigger) jec.getTrigger();
            JobDetail jobDetail = jec.getJobDetail();

            do {

                JobExecutionException jobExEx = null;
                Job job = jec.getJobInstance();

                try {
                    begin();
                } catch (SchedulerException se) {
                    qs.notifySchedulerListenersError("Error executing Job ("
                            + jec.getJobDetail().getKey()
                            + ": couldn't begin execution.", se);
                    break;
                }

                // notify job & trigger listeners...
                try {
                    if (!notifyListenersBeginning(jec)) {
                        break;
                    }
                } catch(VetoedException ve) {
                    try {
                        CompletedExecutionInstruction instCode = trigger.executionComplete(jec, null);
                        qs.notifyJobStoreJobVetoed(trigger, jobDetail, instCode);
                       
                        // QTZ-205
                        // Even if trigger got vetoed, we still needs to check to see if it's the trigger's finalized run or not.
                        if (jec.getTrigger().getNextFireTime() == null) {
                            qs.notifySchedulerListenersFinalized(jec.getTrigger());
                        }

                        complete(true);
                    } catch (SchedulerException se) {
                        qs.notifySchedulerListenersError("Error during veto of Job ("
                                + jec.getJobDetail().getKey()
                                + ": couldn't finalize execution.", se);
                    }
                    break;
                }

                long startTime = System.currentTimeMillis();
                long endTime = startTime;

                // execute the job
                try {
                    log.debug("Calling execute on job " + jobDetail.getKey());
                    job.execute(jec);
                    endTime = System.currentTimeMillis();
                } catch (JobExecutionException jee) {
                    endTime = System.currentTimeMillis();
                    jobExEx = jee;
                    getLog().info("Job " + jobDetail.getKey() +
                            " threw a JobExecutionException: ", jobExEx);
                } catch (Throwable e) {
                    endTime = System.currentTimeMillis();
                    getLog().error("Job " + jobDetail.getKey() +
                            " threw an unhandled Exception: ", e);
                    SchedulerException se = new SchedulerException(
                            "Job threw an unhandled exception.", e);
                    qs.notifySchedulerListenersError("Job ("
                            + jec.getJobDetail().getKey()
                            + " threw an exception.", se);
                    jobExEx = new JobExecutionException(se, false);
                }

                jec.setJobRunTime(endTime - startTime);

                // notify all job listeners
                if (!notifyJobListenersComplete(jec, jobExEx)) {
                    break;
                }

                CompletedExecutionInstruction instCode = CompletedExecutionInstruction.NOOP;

                // update the trigger
                try {
                    instCode = trigger.executionComplete(jec, jobExEx);
                } catch (Exception e) {
                    // If this happens, there's a bug in the trigger...
                    SchedulerException se = new SchedulerException(
                            "Trigger threw an unhandled exception.", e);
                    qs.notifySchedulerListenersError(
View Full Code Here


   
    public void scheduleBasicJob(Map<String, Object> jobDetailInfo,
            Map<String, Object> triggerInfo) throws Exception {
        try {
            JobDetail jobDetail = JobDetailSupport.newJobDetail(jobDetailInfo);
            OperableTrigger trigger = TriggerSupport.newTrigger(triggerInfo);
            scheduler.deleteJob(jobDetail.getKey());
            scheduler.scheduleJob(jobDetail, trigger);
        } catch (ParseException pe) {
            throw pe;
        } catch (Exception e) {
View Full Code Here

        trigger.setKey(new TriggerKey((String) attrMap.get("name"), (String) attrMap.get("group")));
        trigger.setJobKey(new JobKey((String) attrMap.get("jobName"), (String) attrMap.get("jobGroup")));
    }
   
    public static OperableTrigger newTrigger(CompositeData cData) throws ParseException {
        OperableTrigger result = null;
        if(cData.containsKey("cronExpression")) {
            result = CronTriggerSupport.newTrigger(cData);
        } else {
            result = SimpleTriggerSupport.newTrigger(cData);
        }
View Full Code Here

        }
        return result;
    }
   
    public static OperableTrigger newTrigger(Map<String, Object> attrMap) throws ParseException {
        OperableTrigger result = null;
        if(attrMap.containsKey("cronExpression")) {
            result = CronTriggerSupport.newTrigger(attrMap);
        } else {
            result = SimpleTriggerSupport.newTrigger(attrMap);
        }
View Full Code Here

    // used by execute tests
    private JobExecutionContext buildContext(JobDataMap map) {
        Scheduler s = mock(Scheduler.class);
        TriggerFiredBundle bundle = mock(TriggerFiredBundle.class);
        JobDetail detail = mock(JobDetail.class);
        OperableTrigger trig = mock(OperableTrigger.class);
        when(detail.getJobDataMap()).thenReturn(map);
        when(bundle.getJobDetail()).thenReturn(detail);
        when(bundle.getTrigger()).thenReturn(trig);
        when(trig.getJobDataMap()).thenReturn(new JobDataMap());

        return new JobExecutionContextImpl(s, bundle, null);
    }
View Full Code Here

    return null;
  }

  public List<Date> getNextFireTimes(int maxCount) {
    List<Date> result = Lists.newArrayList();
    OperableTrigger baseTrigger = (OperableTrigger)((OperableTrigger)trigger).clone();
    Calendar baseCalendar = null;

    if (baseTrigger.getNextFireTime() == null) {
      baseTrigger.computeFirstFireTime(baseCalendar);
    }

    Date nextExecution = new Date();
    int count = 0;
   
    while(count < maxCount) {
      nextExecution = baseTrigger.getFireTimeAfter(nextExecution);
      if (nextExecution == null) break;
      result.add(nextExecution);
      baseTrigger.triggered(baseCalendar);
      count++;
    }
    return result;
  }
View Full Code Here

    return getNextFireTimes(10);
  }

  public List<Date> getNextFireTimes(int maxCount) {
    List<Date> result = Lists.newArrayList();
    OperableTrigger baseTrigger = (OperableTrigger)((OperableTrigger)trigger).clone();
    Calendar baseCalendar = null;

    if (baseTrigger.getNextFireTime() == null) {
      baseTrigger.computeFirstFireTime(baseCalendar);
    }

    Date nextExecution = new Date();
    int count = 0;
   
    while(count < maxCount) {
      nextExecution = baseTrigger.getFireTimeAfter(nextExecution);
      if (nextExecution == null) break;
      result.add(nextExecution);
      baseTrigger.triggered(baseCalendar);
      count++;
    }
    return result;
  }
View Full Code Here

TOP

Related Classes of org.quartz.spi.OperableTrigger

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.