Search in sources :

Example 21 with Job

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);
}
Also used : Job(org.activiti.engine.runtime.Job)

Example 22 with Job

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);
}
Also used : Job(org.activiti.engine.runtime.Job)

Example 23 with Job

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());
}
Also used : AcquiredJobEntities(org.activiti.engine.impl.asyncexecutor.AcquiredJobEntities) ProcessDefinition(org.activiti.engine.repository.ProcessDefinition) Job(org.activiti.engine.runtime.Job) Deployment(org.activiti.engine.test.Deployment)

Example 24 with Job

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());
}
Also used : ExecutionEntity(org.activiti.engine.impl.persistence.entity.ExecutionEntity) ProcessInstance(org.activiti.engine.runtime.ProcessInstance) Job(org.activiti.engine.runtime.Job) Deployment(org.activiti.engine.test.Deployment)

Example 25 with Job

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);
    }
}
Also used : Job(org.activiti.engine.runtime.Job)

Aggregations

Job (org.activiti.engine.runtime.Job)110 Deployment (org.activiti.engine.test.Deployment)76 ProcessInstance (org.activiti.engine.runtime.ProcessInstance)55 Task (org.activiti.engine.task.Task)39 Date (java.util.Date)23 Calendar (java.util.Calendar)16 DelegateTask (org.activiti.engine.delegate.DelegateTask)11 HashMap (java.util.HashMap)10 ActivitiEvent (org.activiti.engine.delegate.event.ActivitiEvent)10 JobQuery (org.activiti.engine.runtime.JobQuery)8 ActivitiException (org.activiti.engine.ActivitiException)6 SimpleDateFormat (java.text.SimpleDateFormat)5 ArrayList (java.util.ArrayList)5 DefaultClockImpl (org.activiti.engine.impl.util.DefaultClockImpl)5 ProcessDefinition (org.activiti.engine.repository.ProcessDefinition)5 Clock (org.activiti.engine.runtime.Clock)5 CloseableHttpResponse (org.apache.http.client.methods.CloseableHttpResponse)5 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)4 HistoricProcessInstance (org.activiti.engine.history.HistoricProcessInstance)4 CommandContext (org.activiti.engine.impl.interceptor.CommandContext)4