Package fm.last.citrine.model

Examples of fm.last.citrine.model.Task


    assertFalse("Expected a string but got '" + taskRun.getSysErr() + "'", StringUtils.isEmpty(taskRun.getSysErr()));
  }

  @Test(timeout = DEFAULT_TEST_TIMEOUT)
  public void testRunNow_Success() throws InterruptedException {
    Task task = new Task("name", "groupName", "sysExecJob", false, true, "sleep 5", defaultTimerSchedule);
    taskManager.save(task);
    schedulerManager.runTaskNow(task);
    Thread.sleep(1000); // give task time to get started
    assertTrue(taskRunManager.isRunning(task.getId()));
    waitForTask(task);
    assertFalse(taskRunManager.isRunning(task.getId()));
    List<TaskRun> taskRuns = taskRunManager.findByTaskId(task.getId());
    assertEquals(1, taskRuns.size());
    TaskRun taskRun = taskRuns.get(0);
    assertEquals(Status.SUCCESS, taskRun.getStatus());

    // we slept so there should be no output at all
View Full Code Here


    assertTrue(StringUtils.isEmpty(taskRun.getSysErr()));
  }

  @Test(timeout = DEFAULT_TEST_TIMEOUT)
  public void testRunSameTaskSimultaneously() throws InterruptedException {
    Task task = new Task("name", "groupName", "sysExecJob", false, true, "sleep 5", defaultTimerSchedule);
    taskManager.save(task);
    schedulerManager.runTaskNow(task);
    Thread.sleep(1000); // give task time to get started
    assertTrue(taskRunManager.isRunning(task.getId()));

    try {
      schedulerManager.runTaskNow(task);
      fail("Should not be able to run the same task simultaneously");
    } catch (ScheduleException e) {
      // expected
    }

    waitForTask(task);
    assertFalse(taskRunManager.isRunning(task.getId()));
    List<TaskRun> taskRuns = taskRunManager.findByTaskId(task.getId());
    assertEquals(1, taskRuns.size());
    TaskRun taskRun = taskRuns.get(0);
    assertEquals(Status.SUCCESS, taskRun.getStatus());

    // now that task has finished, try run it again
    schedulerManager.runTaskNow(task);
    Thread.sleep(1000); // give task time to get started
    assertTrue(taskRunManager.isRunning(task.getId()));
    waitForTask(task);
    assertFalse(taskRunManager.isRunning(task.getId()));
    taskRuns = taskRunManager.findByTaskId(task.getId());
    assertEquals(2, taskRuns.size());
    assertEquals(Status.SUCCESS, taskRuns.get(0).getStatus());
    assertEquals(Status.SUCCESS, taskRuns.get(1).getStatus());
  }
View Full Code Here

   *
   * @throws InterruptedException
   */
  @Test(timeout = DEFAULT_TEST_TIMEOUT)
  public void testRunNow_AbortOnRunning() throws InterruptedException {
    Task task = new Task("name", "groupName", "sysExecJob", false, true, "sleep 3", defaultTimerSchedule);
    taskManager.save(task);
    schedulerManager.runTaskNow(task);
    try { // try run task again, quartz should not allow this
      schedulerManager.runTaskNow(task);
    } catch (ScheduleException e) {
      // expected
    }
    waitForTask(task);
    List<TaskRun> taskRuns = taskRunManager.findByTaskId(task.getId());
    assertEquals(1, taskRuns.size());
    TaskRun taskRun = taskRuns.get(0); // most recent job run should be first in list, i.e. the one that aborted
    assertEquals(Status.SUCCESS, taskRun.getStatus());
    assertTrue(StringUtils.isEmpty(taskRun.getStackTrace()));
    assertTrue(StringUtils.isEmpty(taskRun.getSysOut()));
View Full Code Here

    assertTrue(StringUtils.isEmpty(taskRun.getSysErr()));
  }

  @Test(timeout = DEFAULT_TEST_TIMEOUT)
  public void testRunNow_Success_WithChild() throws InterruptedException {
    Task task1 = new Task("name", "groupName", "sysExecJob", false, true, "ls", defaultTimerSchedule);
    taskManager.save(task1);
    Task task2 = new Task("name2", "groupName", "sysExecJob", true, true, "ls", "");
    taskManager.save(task2);
    task1.addChildTask(task2);
    taskManager.save(task1);

    schedulerManager.runTaskNow(task1);
    waitForTask(task2);

    List<TaskRun> taskRuns = taskRunManager.findByTaskId(task1.getId());
    assertEquals(1, taskRuns.size());
    TaskRun taskRun = taskRuns.get(0);
    assertEquals(Status.SUCCESS, taskRun.getStatus());

    taskRuns = taskRunManager.findByTaskId(task2.getId());
    assertEquals(1, taskRuns.size());
    taskRun = taskRuns.get(0);
    assertEquals(Status.SUCCESS, taskRun.getStatus());
  }
View Full Code Here

  @Test(timeout = DEFAULT_TEST_TIMEOUT)
  public void testRunNow_Failure_WithChild_StopOnErrorTrue() throws InterruptedException {
    failTask.setStopOnError(true);
    taskManager.save(failTask);
    Task task2 = new Task("name2", "groupName", "sysExecJob", true, true, "ls", "");
    taskManager.save(task2);
    failTask.addChildTask(task2);
    taskManager.save(failTask);

    schedulerManager.runTaskNow(failTask);
    waitForTask(failTask);

    Thread.sleep(1000);

    List<TaskRun> taskRuns = taskRunManager.findByTaskId(failTask.getId());
    assertEquals(1, taskRuns.size());
    TaskRun jobRun = taskRuns.get(0);
    assertEquals(Status.FAILED, jobRun.getStatus());

    assertEquals(0, taskRunManager.findByTaskId(task2.getId()).size());
  }
View Full Code Here

  @Test(timeout = DEFAULT_TEST_TIMEOUT)
  public void testRunNow_Failure_WithChild_StopOnErrorFalse() throws InterruptedException {
    // set stopOnError for parent to false, child should run even though parent fails
    failTask.setStopOnError(false);
    taskManager.save(failTask);
    Task task2 = new Task("name2", "groupName", "sysExecJob", true, true, "ls", "");
    taskManager.save(task2);
    failTask.addChildTask(task2);
    taskManager.save(failTask);

    schedulerManager.runTaskNow(failTask);
    waitForTask(task2); // job2 should run even though failJob fails

    List<TaskRun> taskRuns = taskRunManager.findByTaskId(failTask.getId());
    assertEquals(1, taskRuns.size());
    TaskRun taskRun = taskRuns.get(0);
    assertEquals(Status.FAILED, taskRun.getStatus());

    assertEquals(1, taskRunManager.findByTaskId(task2.getId()).size());
  }
View Full Code Here

   *
   * @throws InterruptedException
   */
  @Test(timeout = DEFAULT_TEST_TIMEOUT)
  public void testRunNow_ChildDiamond() throws InterruptedException {
    Task task1 = new Task("name", "groupName", "sysExecJob", false, true, "ls", defaultTimerSchedule);
    taskManager.save(task1);
    Task task2 = new Task("name2", "groupName", "sysExecJob", false, true, "ls", "");
    taskManager.save(task2);
    task1.addChildTask(task2);
    taskManager.save(task1);

    schedulerManager.runTaskNow(task1);
    waitForTask(task1);

    List<TaskRun> taskRuns = taskRunManager.findByTaskId(task1.getId());
    assertEquals(1, taskRuns.size());
    TaskRun taskRun = taskRuns.get(0);
    assertEquals(Status.SUCCESS, taskRun.getStatus());

    // wait once for task2 just to make sure it hasn't actually run
    waitForTask(task2, 1);

    // task 2 is disabled, so even though it is child of 1, it should not run
    taskRuns = taskRunManager.findByTaskId(task2.getId());
    assertEquals(0, taskRuns.size());
  }
View Full Code Here

    assertEquals(0, taskRuns.size());
  }

  @Test(timeout = DEFAULT_TEST_TIMEOUT)
  public void testChildStillRunning() throws InterruptedException {
    Task parentTask = new Task("parent", "groupName", "sysExecJob", false, true, "ls", defaultTimerSchedule);
    taskManager.save(parentTask);
    Task childTask = new Task("child", "groupName", "sysExecJob", true, true, "sleep 10", "");
    taskManager.save(childTask);
    parentTask.addChildTask(childTask);
    taskManager.save(parentTask);

    schedulerManager.runTaskNow(parentTask);
    waitForTask(parentTask);
    Thread.sleep(1000); // give task 2 a chance to get going
    assertTrue(taskRunManager.isRunning(childTask.getId()));

    schedulerManager.runTaskNow(parentTask); // now run task 1 again
    waitForTask(parentTask);
    waitForTask(childTask);

    // now run 1 again, should all go fine
    schedulerManager.runTaskNow(parentTask);
    waitForTask(childTask);

    List<TaskRun> parentTaskRuns = taskRunManager.findByTaskId(parentTask.getId());
    assertEquals(3, parentTaskRuns.size());
    assertEquals(Status.SUCCESS, parentTaskRuns.get(0).getStatus());
    assertEquals(Status.SUCCESS, parentTaskRuns.get(1).getStatus());
    assertEquals(Status.SUCCESS, parentTaskRuns.get(2).getStatus());

    List<TaskRun> childTaskRuns = taskRunManager.findByTaskId(childTask.getId());
    assertEquals(3, childTaskRuns.size());
    assertEquals(Status.SUCCESS, childTaskRuns.get(0).getStatus());
    assertEquals(Status.ABORTED, childTaskRuns.get(1).getStatus());
    assertEquals(Status.SUCCESS, childTaskRuns.get(2).getStatus());
  }
View Full Code Here

  }

  @Test(timeout = DEFAULT_TEST_TIMEOUT)
  public void testRunNow_Success_WithChildDisabled() throws InterruptedException {
    String group = "diamondTest";
    Task task1 = new Task("task1", group, BEAN_WAIT_JOB, true, true, "3000", "");
    taskManager.save(task1);
    Task task2 = new Task("task2", group, BEAN_WAIT_JOB, true, true, "100", "");
    taskManager.save(task2);
    Task task3 = new Task("task3", group, BEAN_WAIT_JOB, true, true, "6000", "");
    taskManager.save(task3);
    Task task4 = new Task("task4", group, BEAN_WAIT_JOB, true, true, "1000", "");
    taskManager.save(task4);

    // now create our task "diamond"
    task1.addChildTask(task2);
    task1.addChildTask(task3);
    taskManager.save(task1);
    task2.addChildTask(task4);
    taskManager.save(task2);
    task3.addChildTask(task4);
    taskManager.save(task3);

    schedulerManager.runTaskNow(task1);
    Thread.sleep(1000); // wait enough that task1 should have started but not yet finished
    assertEquals(1, taskRunManager.findByTaskId(task1.getId()).size());
    assertEquals(0, taskRunManager.findByTaskId(task3.getId()).size());
    assertEquals(0, taskRunManager.findByTaskId(task2.getId()).size());

    waitForTask(task1);
    // now tasks 2 and 3 should get kicked off
    Thread.sleep(1000); // wait a bit for this to happen
    assertEquals(1, taskRunManager.findByTaskId(task2.getId()).size());
    assertEquals(1, taskRunManager.findByTaskId(task3.getId()).size());
    assertEquals(0, taskRunManager.findByTaskId(task4.getId()).size()); // should not be triggered yet

    waitForTask(task4); // once 2 and 3 are finished, 4 should get triggered
    assertEquals(1, taskRunManager.findByTaskId(task1.getId()).size());
    assertEquals(1, taskRunManager.findByTaskId(task2.getId()).size());
    assertEquals(1, taskRunManager.findByTaskId(task3.getId()).size());
    assertEquals(1, taskRunManager.findByTaskId(task4.getId()).size());
  }
View Full Code Here

   * @throws InterruptedException
   */
  @Test(timeout = DEFAULT_TEST_TIMEOUT)
  public void testRunNow_ChildDiamond_StopOnError_2Fails() throws InterruptedException {
    String group = "diamondTest";
    Task task1 = new Task("task1", group, BEAN_WAIT_JOB, true, true, "3000", "");
    taskManager.save(task1);
    // set task 2 to fail
    Task task2 = new Task("task2", group, "failJob", true, true, "true", "");
    taskManager.save(task2);
    Task task3 = new Task("task3", group, BEAN_WAIT_JOB, true, true, "5000", "");
    taskManager.save(task3);
    Task task4 = new Task("task4", group, BEAN_WAIT_JOB, true, true, "1000", "");
    taskManager.save(task4);

    // now create our task "diamond"
    task1.addChildTask(task2);
    task1.addChildTask(task3);
    taskManager.save(task1);
    task2.addChildTask(task4);
    taskManager.save(task2);
    task3.addChildTask(task4);
    taskManager.save(task3);

    schedulerManager.runTaskNow(task1);
    waitForTask(task4); // task 4 should run

    List<TaskRun> taskRuns = taskRunManager.findByTaskId(task2.getId());
    assertEquals(1, taskRuns.size());
    TaskRun taskRun = taskRuns.get(0);
    assertEquals(Status.FAILED, taskRun.getStatus());

    taskRuns = taskRunManager.findByTaskId(task4.getId());
    assertEquals(1, taskRuns.size());
    taskRun = taskRuns.get(0);
    assertEquals(Status.SUCCESS, taskRun.getStatus());
  }
View Full Code Here

TOP

Related Classes of fm.last.citrine.model.Task

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.