Search in sources :

Example 1 with EventLogQuery

use of org.apache.inlong.manager.common.pojo.workflow.EventLogQuery in project incubator-inlong by apache.

the class WorkflowServiceImpl method listTaskExecuteLogs.

@Override
public PageInfo<WorkflowExecuteLog> listTaskExecuteLogs(TaskExecuteLogQuery query) {
    Preconditions.checkNotNull(query, "task execute log query params cannot be null");
    String groupId = query.getInlongGroupId();
    List<String> processNameList = query.getProcessNames();
    Preconditions.checkNotEmpty(groupId, "inlong group id cannot be null");
    Preconditions.checkNotEmpty(processNameList, "process name list cannot be null");
    ProcessQuery processRequest = new ProcessQuery();
    processRequest.setInlongGroupId(groupId);
    processRequest.setNameList(processNameList);
    processRequest.setHidden(1);
    // Paging query process instance, construct process execution log
    PageHelper.startPage(query.getPageNum(), query.getPageSize());
    Page<WorkflowProcessEntity> entityPage = (Page<WorkflowProcessEntity>) queryService.listProcessEntity(processRequest);
    PageInfo<WorkflowExecuteLog> pageInfo = entityPage.toPageInfo(inst -> WorkflowExecuteLog.builder().processId(inst.getId()).processDisplayName(inst.getDisplayName()).status(inst.getStatus()).startTime(inst.getStartTime()).endTime(inst.getEndTime()).build());
    // According to the process execution log, query the execution log of each task in the process
    for (WorkflowExecuteLog executeLog : pageInfo.getList()) {
        TaskQuery taskQuery = new TaskQuery();
        taskQuery.setProcessId(executeLog.getProcessId());
        taskQuery.setType(taskQuery.getType());
        List<TaskExecutorLog> executorLogs = queryService.listTaskEntity(taskQuery).stream().map(TaskExecutorLog::buildFromTaskInst).collect(Collectors.toList());
        // Set the execution log of the task's listener
        for (TaskExecutorLog taskExecutorLog : executorLogs) {
            EventLogQuery eventLogQuery = new EventLogQuery();
            eventLogQuery.setTaskId(taskExecutorLog.getTaskId());
            List<ListenerExecutorLog> logs = queryService.listEventLog(eventLogQuery).stream().map(ListenerExecutorLog::fromEventLog).collect(Collectors.toList());
            taskExecutorLog.setListenerExecutorLogs(logs);
        }
        executeLog.setTaskExecutorLogs(executorLogs);
    }
    LOGGER.info("success to page list task execute logs for " + query);
    pageInfo.setTotal(entityPage.getTotal());
    return pageInfo;
}
Also used : ListenerExecutorLog(org.apache.inlong.manager.service.workflow.WorkflowExecuteLog.ListenerExecutorLog) EventLogQuery(org.apache.inlong.manager.common.pojo.workflow.EventLogQuery) Page(com.github.pagehelper.Page) TaskExecutorLog(org.apache.inlong.manager.service.workflow.WorkflowExecuteLog.TaskExecutorLog) ProcessQuery(org.apache.inlong.manager.common.pojo.workflow.ProcessQuery) TaskQuery(org.apache.inlong.manager.common.pojo.workflow.TaskQuery) WorkflowProcessEntity(org.apache.inlong.manager.dao.entity.WorkflowProcessEntity)

Aggregations

Page (com.github.pagehelper.Page)1 EventLogQuery (org.apache.inlong.manager.common.pojo.workflow.EventLogQuery)1 ProcessQuery (org.apache.inlong.manager.common.pojo.workflow.ProcessQuery)1 TaskQuery (org.apache.inlong.manager.common.pojo.workflow.TaskQuery)1 WorkflowProcessEntity (org.apache.inlong.manager.dao.entity.WorkflowProcessEntity)1 ListenerExecutorLog (org.apache.inlong.manager.service.workflow.WorkflowExecuteLog.ListenerExecutorLog)1 TaskExecutorLog (org.apache.inlong.manager.service.workflow.WorkflowExecuteLog.TaskExecutorLog)1