Esempio n. 1
0
  public void executeTask(int taskId) throws Exception {
    try {
      this.taskId = taskId;
      log.debug("Stating Task ID : {}. Current time : {}", taskId, System.currentTimeMillis());
      this.ignite = ClusterManager.getIgnite("ALL");
      this.connSrvc =
          ignite
              .services()
              .serviceProxy("DredgeDBconnectionPool", DBconnectionPoolService.class, false);

      if (TaskManager.checkTaskStatus(taskId, connSrvc).equals("Y")) {
        log.error(
            "ERROR: TaskExecutor Cannot run Task because taskId {} is already executing!", taskId);
        throw new DredgeException(
            String.format(
                "ERROR: Cannot run Task because taskId %s is already executing!", taskId));
      } else {
        log.debug("Building Task ID : {}. Current time : {}", taskId, System.currentTimeMillis());
        this.taskManager = new TaskManager(taskId, connSrvc);

        log.debug("Task Name : ", taskManager.task.getTask_name());
        log.debug(
            "Task ID : {}. run_id : {}",
            taskManager.task.getDredge_task_id(),
            taskManager.task.getRun_id());
        log.debug(
            "Task ID : {}. is_running : {}",
            taskManager.task.getDredge_task_id(),
            taskManager.task.getIs_running());
        log.debug(
            "Task ID : {}. is_in_task_queue : {}",
            taskManager.task.getDredge_task_id(),
            taskManager.task.getIs_in_task_queue());
        log.debug(
            "Task ID : {}. is_active : {}",
            taskManager.task.getDredge_task_id(),
            taskManager.task.getIs_active());
        log.debug(
            "Task ID : {}. fk_dredge_task_type_id : {}",
            taskManager.task.getDredge_task_id(),
            taskManager.task.getFk_dredge_task_type_id());
        log.debug(
            "Task ID : {}. task_type_name : {}",
            taskManager.task.getDredge_task_id(),
            taskManager.task.getTask_type_name());
        log.debug(
            "Task ID : {}. priority : {}",
            taskManager.task.getDredge_task_id(),
            taskManager.task.getPriority());
        log.debug(
            "Task ID : {}. temp_path : {}",
            taskManager.task.getDredge_task_id(),
            taskManager.task.getTemp_path());
        log.debug("Task ID : {}. Pipeline Details", taskManager.task.getDredge_task_id());

        for (final Dredge_Task_Pipeline taskPipeline : taskManager.task.getTaskPipelineList()) {
          log.debug(
              "Task ID : {}. run_id : {}. PipelineID : {}. Prev Pipeline : {}. Pipeline Type : {}. Abstration Mode : {}. Abstraction Type : {}. is_complete : {}. Input Path {}. Output Path {}",
              taskManager.task.getDredge_task_id(),
              taskManager.task.getRun_id(),
              taskPipeline.getTask_pipeline_id(),
              taskPipeline.getPrev_pipeline_id(),
              taskPipeline.getComponent_type_name(),
              taskPipeline.getAbstraction_mode(),
              taskPipeline.getAbstraction_type_name(),
              taskPipeline.getIs_complete(),
              taskPipeline.getInputPathList().toString(),
              taskPipeline.getPipelineOutputPath());
          for (final Dredge_Task_Pipeline_Component taskPipelineComponent :
              taskPipeline.getTaskPipelineComponentList()) {
            log.debug(
                "Task ID : {}. run_id : {}. PipelineID : {}. ComponentID : {}. Name : {}. Location : {}. ",
                taskManager.task.getDredge_task_id(),
                taskManager.task.getRun_id(),
                taskPipeline.getTask_pipeline_id(),
                taskPipelineComponent.getFk_dredge_component_id(),
                taskPipelineComponent.getName(),
                taskPipelineComponent.getLocation());
            for (final Dredge_Task_Pipeline_Component_Parameter taskPipelineComponentParameter :
                taskPipelineComponent.getTaskPipelineComponentParameterList()) {
              log.debug(
                  "Task ID : {}. run_id : {}. PipelineID : {}. ComponentID : {}. Param Type : {}. Param Name {}. Param Value {}.",
                  taskManager.task.getDredge_task_id(),
                  taskManager.task.getRun_id(),
                  taskPipeline.getTask_pipeline_id(),
                  taskPipelineComponent.getFk_dredge_component_id(),
                  taskPipelineComponentParameter.getParam_type(),
                  taskPipelineComponentParameter.getParam_name(),
                  taskPipelineComponentParameter.getParam_value());
            }
          }
        }
        log.debug(
            "Building Task ID : {} Complete. Current time : {}",
            taskId,
            System.currentTimeMillis());

        try {
          taskManager.startTask(taskManager.task.getRun_id());
          taskManager.taskCompletedEvent(taskManager.task);
        } catch (final Exception e) {
          taskManager.taskErrorEvent(taskManager.task);
          log.error(
              "ERROR: 1. Failure when running task ID {}. Message {}.", taskId, e.getMessage());
          throw e;
        }
      }
    } catch (final DredgeException de) {
      log.error("ERROR: 2. Failure when running task ID {}. Message {}.", taskId, de.getMessage());
      throw de;
    } catch (final Exception e) {
      log.error("ERROR: 3. Failure when running task ID {}. Message {}.", taskId, e.getMessage());
      throw e;
    } finally {
      if (ignite.configuration().isClientMode()) {
        ignite.close();
      }
    }
  }