use of org.activiti.engine.runtime.Job in project Activiti by Activiti.
the class JobExecutorCmdExceptionTest method testJobCommandsWith2Exceptions.
public void testJobCommandsWith2Exceptions() {
commandExecutor.execute(new Command<String>() {
public String execute(CommandContext commandContext) {
MessageEntity message = createTweetExceptionMessage();
commandContext.getJobEntityManager().send(message);
return message.getId();
}
});
Job job = managementService.createJobQuery().singleResult();
assertEquals(3, job.getRetries());
try {
managementService.executeJob(job.getId());
fail("exception expected");
} catch (Exception e) {
// exception expected;
}
job = managementService.createJobQuery().singleResult();
assertEquals(2, job.getRetries());
try {
managementService.executeJob(job.getId());
fail("exception expected");
} catch (Exception e) {
// exception expected;
}
job = managementService.createJobQuery().singleResult();
assertEquals(1, job.getRetries());
managementService.executeJob(job.getId());
}
use of org.activiti.engine.runtime.Job in project Activiti by Activiti.
the class JobExecutorCmdHappyTest method testJobCommandsWithMessage.
public void testJobCommandsWithMessage() {
CommandExecutor commandExecutor = processEngineConfiguration.getCommandExecutor();
String jobId = commandExecutor.execute(new Command<String>() {
public String execute(CommandContext commandContext) {
MessageEntity message = createTweetMessage("i'm coding a test");
commandContext.getJobEntityManager().send(message);
return message.getId();
}
});
Job job = managementService.createJobQuery().singleResult();
assertNotNull(job);
assertEquals(jobId, job.getId());
assertEquals(0, tweetHandler.getMessages().size());
managementService.executeJob(job.getId());
assertEquals("i'm coding a test", tweetHandler.getMessages().get(0));
assertEquals(1, tweetHandler.getMessages().size());
}
use of org.activiti.engine.runtime.Job in project Activiti by Activiti.
the class ProcessInstanceSuspensionTest method testJobsNotVisisbleToAcquisitionIfInstanceSuspended.
@Deployment(resources = { "org/activiti/engine/test/db/oneJobProcess.bpmn20.xml" })
public void testJobsNotVisisbleToAcquisitionIfInstanceSuspended() {
ProcessDefinition pd = repositoryService.createProcessDefinitionQuery().singleResult();
ProcessInstance pi = runtimeService.startProcessInstanceByKey(pd.getKey());
// now there is one job:
// now there is one job:
Job job = managementService.createJobQuery().singleResult();
assertNotNull(job);
makeSureJobDue(job);
// the acquirejobs command sees the job:
AcquiredJobEntities acquiredJobs = executeAcquireJobsCommand();
assertEquals(1, acquiredJobs.size());
// suspend the process instance:
runtimeService.suspendProcessInstanceById(pi.getId());
// now, the acquirejobs command does not see the job:
acquiredJobs = executeAcquireJobsCommand();
assertEquals(0, acquiredJobs.size());
}
use of org.activiti.engine.runtime.Job in project Activiti by Activiti.
the class SignalThrowingEventListenerTest method testThrowSignalInRolledbackTransaction.
/**
* Test signal throwing when a job failed, signaling will happen in the rolled back transaction,
* not doing anything in the end...
*/
@Deployment(resources = { "org/activiti/engine/test/api/event/SignalThrowingEventListenerTest.testThrowSignalInNewTransaction.bpmn20.xml" })
public void testThrowSignalInRolledbackTransaction() throws Exception {
SignalThrowingEventListener listener = null;
try {
listener = new SignalThrowingEventListener();
listener.setSignalName("Signal");
listener.setProcessInstanceScope(true);
processEngineConfiguration.getEventDispatcher().addEventListener(listener, ActivitiEventType.JOB_EXECUTION_FAILURE);
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testSignal");
assertNotNull(processInstance);
Job signalJob = managementService.createJobQuery().processInstanceId(processInstance.getId()).singleResult();
try {
managementService.executeJob(signalJob.getId());
fail("Exception expected");
} catch (ActivitiException ae) {
// Ignore, expected exception
}
Job failedJob = managementService.createJobQuery().withException().processInstanceId(processInstance.getId()).singleResult();
assertNotNull(failedJob);
assertEquals(2, failedJob.getRetries());
// Three retries should each have triggered dispatching of a retry-decrement event
assertEquals(0, taskService.createTaskQuery().processInstanceId(processInstance.getId()).count());
try {
managementService.executeJob(failedJob.getId());
fail("Exception expected");
} catch (ActivitiException ae) {
// Ignore, expected exception
assertEquals(0, taskService.createTaskQuery().processInstanceId(processInstance.getId()).count());
}
} finally {
processEngineConfiguration.getEventDispatcher().removeEventListener(listener);
}
}
use of org.activiti.engine.runtime.Job in project Activiti by Activiti.
the class SignalThrowingEventListenerTest method testThrowSignalInNewTransaction.
/**
* Test signal throwing when a job failed and the retries are decremented, affectively
* starting a new transaction.
*/
@Deployment
public void testThrowSignalInNewTransaction() throws Exception {
SignalThrowingEventListener listener = null;
try {
listener = new SignalThrowingEventListener();
listener.setSignalName("Signal");
listener.setProcessInstanceScope(true);
processEngineConfiguration.getEventDispatcher().addEventListener(listener, ActivitiEventType.JOB_RETRIES_DECREMENTED);
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testSignal");
assertNotNull(processInstance);
Job signalJob = managementService.createJobQuery().processInstanceId(processInstance.getId()).singleResult();
try {
managementService.executeJob(signalJob.getId());
fail("Exception expected");
} catch (ActivitiException ae) {
// Ignore, expected exception
}
Job failedJob = managementService.createJobQuery().withException().processInstanceId(processInstance.getId()).singleResult();
assertNotNull(failedJob);
assertEquals(2, failedJob.getRetries());
// One retry should have triggered dispatching of a retry-decrement event
assertEquals(1, taskService.createTaskQuery().processInstanceId(processInstance.getId()).count());
try {
managementService.executeJob(failedJob.getId());
fail("Exception expected");
} catch (ActivitiException ae) {
// Ignore, expected exception
assertEquals(2, taskService.createTaskQuery().processInstanceId(processInstance.getId()).count());
}
} finally {
processEngineConfiguration.getEventDispatcher().removeEventListener(listener);
}
}
Aggregations