Package org.activiti.engine.impl.jobexecutor

Examples of org.activiti.engine.impl.jobexecutor.JobExecutorContext


   
    if (log.isDebugEnabled()) {
      log.debug("Executing job {}", job.getId());
    }
   
    JobExecutorContext jobExecutorContext = Context.getJobExecutorContext();
    if (jobExecutorContext != null) { // if null, then we are not called by the job executor    
      jobExecutorContext.setCurrentJob(job);
    }
   
    try {
      job.execute(commandContext);
     
      if (commandContext.getEventDispatcher().isEnabled()) {
        commandContext.getEventDispatcher().dispatchEvent(ActivitiEventBuilder.createEntityEvent(
            ActivitiEventType.JOB_EXECUTION_SUCCESS, job));
      }
     
    } catch (Throwable exception) {
      // When transaction is rolled back, decrement retries
      CommandExecutor commandExecutor = Context
        .getProcessEngineConfiguration()
        .getCommandExecutor();
     
      commandContext.getTransactionContext().addTransactionListener(
        TransactionState.ROLLED_BACK,
        new FailedJobListener(commandExecutor, jobId, exception));
     
      // Dispatch an event, indicating job execution failed in a try-catch block, to prevent the original
      // exception to be swallowed
      if (commandContext.getEventDispatcher().isEnabled()) {
        try {
          commandContext.getEventDispatcher().dispatchEvent(ActivitiEventBuilder.createEntityExceptionEvent(
              ActivitiEventType.JOB_EXECUTION_FAILURE, job, exception));
        } catch(Throwable ignore) {
          log.warn("Exception occured while dispatching job failure event, ignoring.", ignore);
        }
      }
      
      // Finally, Throw the exception to indicate the ExecuteJobCmd failed
      throw new ActivitiException("Job " + jobId + " failed", exception);
    } finally {
      if (jobExecutorContext != null) {
        jobExecutorContext.setCurrentJob(null);
      }
    }
    return null;
  }
View Full Code Here


    }
  }
 
  protected void hintJobExecutor(JobEntity job) { 
    JobExecutor jobExecutor = Context.getProcessEngineConfiguration().getJobExecutor();
    JobExecutorContext jobExecutorContext = Context.getJobExecutorContext();
    TransactionListener transactionListener = null;
    if(job.isExclusive()
            && jobExecutorContext != null
            && jobExecutorContext.isExecutingExclusiveJob()) {
      // lock job & add to the queue of the current processor
      Date currentTime = ClockUtil.getCurrentTime();
      job.setLockExpirationTime(new Date(currentTime.getTime() + jobExecutor.getLockTimeInMillis()));
      job.setLockOwner(jobExecutor.getLockOwner());
      transactionListener = new ExclusiveJobAddedNotification(job.getId());     
View Full Code Here

   
    if (job == null) {
      throw new JobNotFoundException(jobId);
    }
   
    JobExecutorContext jobExecutorContext = Context.getJobExecutorContext();
    if(jobExecutorContext != null) { // if null, then we are not called by the job executor    
      jobExecutorContext.setCurrentJob(job);
    }
   
    try {
      job.execute(commandContext);
    } catch (RuntimeException exception) {
      // When transaction is rolled back, decrement retries
      CommandExecutor commandExecutor = Context
        .getProcessEngineConfiguration()
        .getCommandExecutorTxRequiresNew();
     
      commandContext.getTransactionContext().addTransactionListener(
        TransactionState.ROLLED_BACK,
        new FailedJobListener(commandExecutor, jobId, exception));
      
      // throw the original exception to indicate the ExecuteJobCmd failed
      throw exception;
    } finally {
      if(jobExecutorContext != null) {
        jobExecutorContext.setCurrentJob(null);
      }
    }
    return null;
  }
View Full Code Here

TOP

Related Classes of org.activiti.engine.impl.jobexecutor.JobExecutorContext

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.