protected void lockJob(JobEntity job) { String lockOwner = jobExecutor.getLockOwner(); job.setLockOwner(lockOwner); int lockTimeInMillis = jobExecutor.getLockTimeInMillis(); GregorianCalendar gregorianCalendar = new GregorianCalendar(); gregorianCalendar.setTime(ClockUtil.getCurrentTime()); gregorianCalendar.add(Calendar.MILLISECOND, lockTimeInMillis); job.setLockExpirationTime(gregorianCalendar.getTime()); }
protected void lockJob(JobEntity job) { String lockOwner = jobExecutor.getLockOwner(); job.setLockOwner(lockOwner); int lockTimeInMillis = jobExecutor.getLockTimeInMillis(); GregorianCalendar gregorianCalendar = new GregorianCalendar(); gregorianCalendar.setTime(ClockUtil.getCurrentTime()); gregorianCalendar.add(Calendar.MILLISECOND, lockTimeInMillis); job.setLockExpirationTime(gregorianCalendar.getTime()); }
protected void executeCustomStrategy(CommandContext commandContext, JobEntity job, ActivityImpl activity) throws Exception { FailedJobRetryConfiguration retryConfiguration = getFailedJobRetryConfiguration(job, activity); if (retryConfiguration == null) { executeStandardStrategy(commandContext); } else { if (isFirstJobExecution(job)) { // then change default retries to the ones configured initializeRetries(job, retryConfiguration.getRetries()); } else { LOG.debugDecrementingRetriesForJob(job.getId()); } List<String> intervals = retryConfiguration.getRetryIntervals(); int intervalsCount = intervals.size(); int indexOfInterval = Math.max(0, Math.min(intervalsCount - 1, intervalsCount - (job.getRetries() - 1))); DurationHelper durationHelper = getDurationHelper(intervals.get(indexOfInterval)); job.setLockExpirationTime(durationHelper.getDateAfter()); logException(job); decrementRetries(job); notifyAcquisition(commandContext); } }
protected void executeCustomStrategy(CommandContext commandContext, JobEntity job, ActivityImpl activity) throws Exception { FailedJobRetryConfiguration retryConfiguration = getFailedJobRetryConfiguration(job, activity); if (retryConfiguration == null) { executeStandardStrategy(commandContext); } else { if (isFirstJobExecution(job)) { // then change default retries to the ones configured initializeRetries(job, retryConfiguration.getRetries()); } else { LOG.debugDecrementingRetriesForJob(job.getId()); } List<String> intervals = retryConfiguration.getRetryIntervals(); int intervalsCount = intervals.size(); int indexOfInterval = Math.max(0, Math.min(intervalsCount - 1, intervalsCount - (job.getRetries() - 1))); DurationHelper durationHelper = getDurationHelper(intervals.get(indexOfInterval)); job.setLockExpirationTime(durationHelper.getDateAfter()); logException(job); decrementRetries(job); notifyAcquisition(commandContext); } }
@Override public Object execute(CommandContext commandContext) { final JobEntity job = commandContext.getJobManager().findJobById(jobId); job.setLockOwner("someLockOwner"); job.setLockExpirationTime(DateUtils.addHours(ClockUtil.getCurrentTime(), 1)); return null; } });
protected void hintJobExecutor(JobEntity job) { JobExecutor jobExecutor = Context.getProcessEngineConfiguration().getJobExecutor(); if (!jobExecutor.isActive()) { return; } JobExecutorContext jobExecutorContext = Context.getJobExecutorContext(); TransactionListener transactionListener = null; if(!job.isSuspended() && job.isExclusive() && jobExecutorContext != null && jobExecutorContext.isExecutingExclusiveJob() && areInSameProcessInstance(job, jobExecutorContext.getCurrentJob())) { // 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(), jobExecutorContext); } else { // notify job executor: transactionListener = new MessageAddedNotification(jobExecutor); } Context.getCommandContext() .getTransactionContext() .addTransactionListener(TransactionState.COMMITTED, transactionListener); }
protected void hintJobExecutor(JobEntity job) { JobExecutor jobExecutor = Context.getProcessEngineConfiguration().getJobExecutor(); if (!jobExecutor.isActive()) { return; } JobExecutorContext jobExecutorContext = Context.getJobExecutorContext(); TransactionListener transactionListener = null; if(!job.isSuspended() && job.isExclusive() && jobExecutorContext != null && jobExecutorContext.isExecutingExclusiveJob() && areInSameProcessInstance(job, jobExecutorContext.getCurrentJob())) { // 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(), jobExecutorContext); } else { // notify job executor: transactionListener = new MessageAddedNotification(jobExecutor); } Context.getCommandContext() .getTransactionContext() .addTransactionListener(TransactionState.COMMITTED, transactionListener); }
protected void lockJob(JobEntity job) { String lockOwner = jobExecutor.getLockOwner(); job.setLockOwner(lockOwner); int lockTimeInMillis = jobExecutor.getLockTimeInMillis(); GregorianCalendar gregorianCalendar = new GregorianCalendar(); gregorianCalendar.setTime(ClockUtil.getCurrentTime()); gregorianCalendar.add(Calendar.MILLISECOND, lockTimeInMillis); job.setLockExpirationTime(gregorianCalendar.getTime()); }
protected void executeCustomStrategy(CommandContext commandContext, JobEntity job, ActivityImpl activity) throws Exception { FailedJobRetryConfiguration retryConfiguration = getFailedJobRetryConfiguration(job, activity); if (retryConfiguration == null) { executeStandardStrategy(commandContext); } else { if (isFirstJobExecution(job)) { // then change default retries to the ones configured initializeRetries(job, retryConfiguration.getRetries()); } else { LOG.debugDecrementingRetriesForJob(job.getId()); } List<String> intervals = retryConfiguration.getRetryIntervals(); int intervalsCount = intervals.size(); int indexOfInterval = Math.max(0, Math.min(intervalsCount - 1, intervalsCount - (job.getRetries() - 1))); DurationHelper durationHelper = getDurationHelper(intervals.get(indexOfInterval)); job.setLockExpirationTime(durationHelper.getDateAfter()); logException(job); decrementRetries(job); notifyAcquisition(commandContext); } }
@Override public Object execute(CommandContext commandContext) { final JobEntity job = commandContext.getJobManager().findJobById(jobId); job.setLockOwner("someLockOwner"); job.setLockExpirationTime(DateUtils.addHours(ClockUtil.getCurrentTime(), 1)); return null; } });
protected void hintJobExecutor(JobEntity job) { JobExecutor jobExecutor = Context.getProcessEngineConfiguration().getJobExecutor(); if (!jobExecutor.isActive()) { return; } JobExecutorContext jobExecutorContext = Context.getJobExecutorContext(); TransactionListener transactionListener = null; if(!job.isSuspended() && job.isExclusive() && jobExecutorContext != null && jobExecutorContext.isExecutingExclusiveJob() && areInSameProcessInstance(job, jobExecutorContext.getCurrentJob())) { // 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(), jobExecutorContext); } else { // notify job executor: transactionListener = new MessageAddedNotification(jobExecutor); } Context.getCommandContext() .getTransactionContext() .addTransactionListener(TransactionState.COMMITTED, transactionListener); }