use of org.activiti.engine.runtime.Job in project Activiti by Activiti.
the class TenancyTest method testJobTenancyAfterTenantChange.
public void testJobTenancyAfterTenantChange() {
// Deploy process with a timer and an async step AND with a tenant
String deploymentId = repositoryService.createDeployment().addClasspathResource("org/activiti/engine/test/api/tenant/TenancyTest.testJobTenancy.bpmn20.xml").tenantId(TEST_TENANT_ID).deploy().getId();
String newTenant = "newTenant";
repositoryService.changeDeploymentTenantId(deploymentId, newTenant);
// verify job (timer start)
Job job = managementService.createJobQuery().singleResult();
assertEquals(newTenant, job.getTenantId());
managementService.executeJob(job.getId());
// Verify Job tenancy (process intermediary timer)
job = managementService.createJobQuery().singleResult();
assertEquals(newTenant, job.getTenantId());
// Start process, and verify async job has correct tenant id
managementService.executeJob(job.getId());
job = managementService.createJobQuery().singleResult();
assertEquals(newTenant, job.getTenantId());
// Finish process
managementService.executeJob(job.getId());
// clean up
repositoryService.deleteDeployment(deploymentId, true);
}
use of org.activiti.engine.runtime.Job in project Activiti by Activiti.
the class TenancyTest method testJobTenancy.
public void testJobTenancy() {
// Deploy process with a timer and an async step AND with a tenant
String deploymentId = repositoryService.createDeployment().addClasspathResource("org/activiti/engine/test/api/tenant/TenancyTest.testJobTenancy.bpmn20.xml").tenantId(TEST_TENANT_ID).deploy().getId();
// verify job (timer start)
Job job = managementService.createJobQuery().singleResult();
assertEquals(TEST_TENANT_ID, job.getTenantId());
managementService.executeJob(job.getId());
// Verify Job tenancy (process intermediary timer)
job = managementService.createJobQuery().singleResult();
assertEquals(TEST_TENANT_ID, job.getTenantId());
// Start process, and verify async job has correct tenant id
managementService.executeJob(job.getId());
job = managementService.createJobQuery().singleResult();
assertEquals(TEST_TENANT_ID, job.getTenantId());
// Finish process
managementService.executeJob(job.getId());
// Do the same, but now without a tenant
String deploymentId2 = repositoryService.createDeployment().addClasspathResource("org/activiti/engine/test/api/tenant/TenancyTest.testJobTenancy.bpmn20.xml").deploy().getId();
job = managementService.createJobQuery().singleResult();
assertEquals("", job.getTenantId());
managementService.executeJob(job.getId());
job = managementService.createJobQuery().singleResult();
assertEquals("", job.getTenantId());
managementService.executeJob(job.getId());
job = managementService.createJobQuery().singleResult();
assertEquals("", job.getTenantId());
// clean up
repositoryService.deleteDeployment(deploymentId, true);
repositoryService.deleteDeployment(deploymentId2, true);
}
use of org.activiti.engine.runtime.Job in project Activiti by Activiti.
the class ProcessInstanceSuspensionTest method testJobsNotVisisbleToAcquisitionIfDefinitionSuspended.
@Deployment(resources = { "org/activiti/engine/test/db/oneJobProcess.bpmn20.xml" })
public void testJobsNotVisisbleToAcquisitionIfDefinitionSuspended() {
ProcessDefinition pd = repositoryService.createProcessDefinitionQuery().singleResult();
runtimeService.startProcessInstanceByKey(pd.getKey());
// 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:
repositoryService.suspendProcessDefinitionById(pd.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 FailedJobRetryCmdTest method testFailedServiceTask.
@Deployment(resources = { "org/activiti/engine/test/cmd/FailedJobRetryCmdTest.testFailedServiceTask.bpmn20.xml" })
public void testFailedServiceTask() {
ProcessInstance pi = runtimeService.startProcessInstanceByKey("failedServiceTask");
assertNotNull(pi);
waitForExecutedJobWithRetriesLeft(4);
stillOneJobWithExceptionAndRetriesLeft();
Job job = fetchJob(pi.getProcessInstanceId());
assertNotNull(job);
assertEquals(pi.getProcessInstanceId(), job.getProcessInstanceId());
assertEquals(4, job.getRetries());
ExecutionEntity execution = fetchExecutionEntity(pi.getProcessInstanceId());
assertEquals("failingServiceTask", execution.getActivityId());
waitForExecutedJobWithRetriesLeft(3);
job = refreshJob(job.getId());
assertEquals(3, job.getRetries());
stillOneJobWithExceptionAndRetriesLeft();
execution = refreshExecutionEntity(execution.getId());
assertEquals("failingServiceTask", execution.getActivityId());
waitForExecutedJobWithRetriesLeft(2);
job = refreshJob(job.getId());
assertEquals(2, job.getRetries());
stillOneJobWithExceptionAndRetriesLeft();
execution = refreshExecutionEntity(execution.getId());
assertEquals("failingServiceTask", execution.getActivityId());
waitForExecutedJobWithRetriesLeft(1);
job = refreshJob(job.getId());
assertEquals(1, job.getRetries());
stillOneJobWithExceptionAndRetriesLeft();
execution = refreshExecutionEntity(execution.getId());
assertEquals("failingServiceTask", execution.getActivityId());
waitForExecutedJobWithRetriesLeft(0);
job = refreshJob(job.getId());
assertEquals(0, job.getRetries());
assertEquals(1, managementService.createJobQuery().withException().count());
assertEquals(0, managementService.createJobQuery().withRetriesLeft().count());
assertEquals(1, managementService.createJobQuery().noRetriesLeft().count());
execution = refreshExecutionEntity(execution.getId());
assertEquals("failingServiceTask", execution.getActivityId());
}
use of org.activiti.engine.runtime.Job in project Activiti by Activiti.
the class FailedJobRetryCmdTest method waitForExecutedJobWithRetriesLeft.
private void waitForExecutedJobWithRetriesLeft(final int retriesLeft) {
Job job = managementService.createJobQuery().singleResult();
try {
managementService.executeJob(job.getId());
} catch (Exception e) {
}
// update job
job = managementService.createJobQuery().singleResult();
if (job.getRetries() > retriesLeft) {
waitForExecutedJobWithRetriesLeft(retriesLeft);
}
}
Aggregations