Search in sources :

Example 6 with BatchTaskParam

use of com.dtstack.taier.dao.domain.BatchTaskParam in project Taier by DTStack.

the class BatchTaskParamShadeService method saveTaskParam.

public void saveTaskParam(List<BatchTaskParam> paramList) {
    for (BatchTaskParam batchTaskParam : paramList) {
        BatchTaskParamShade paramShade = new BatchTaskParamShade();
        BeanUtils.copyProperties(batchTaskParam, paramShade);
        addOrUpdate(paramShade);
    }
}
Also used : BatchTaskParamShade(com.dtstack.taier.dao.domain.BatchTaskParamShade) BatchTaskParam(com.dtstack.taier.dao.domain.BatchTaskParam)

Example 7 with BatchTaskParam

use of com.dtstack.taier.dao.domain.BatchTaskParam in project Taier by DTStack.

the class BatchHadoopJobExeService method readyForSyncImmediatelyJob.

@Override
public Map<String, Object> readyForSyncImmediatelyJob(BatchTask batchTask, Long tenantId, Boolean isRoot) {
    if (!batchTask.getTaskType().equals(EScheduleJobType.SYNC.getVal())) {
        throw new RdosDefineException("只支持同步任务直接运行");
    }
    Map<String, Object> actionParam = Maps.newHashMap();
    try {
        String taskParams = batchTask.getTaskParams();
        List<BatchTaskParam> taskParamsToReplace = batchTaskParamService.getTaskParam(batchTask.getId());
        JSONObject syncJob = JSON.parseObject(Base64Util.baseDecode(batchTask.getSqlText()));
        taskParams = replaceSyncParll(taskParams, parseSyncChannel(syncJob));
        String job = syncJob.getString("job");
        // 向导模式根据job中的sourceId填充数据源信息,保证每次运行取到最新的连接信息
        job = datasourceService.setJobDataSourceInfo(job, tenantId, syncJob.getIntValue("createModel"));
        batchTaskParamService.checkParams(batchTaskParamService.checkSyncJobParams(job), taskParamsToReplace);
        String name = "run_sync_task_" + batchTask.getName() + "_" + System.currentTimeMillis();
        String taskExeArgs = String.format(JOB_ARGS_TEMPLATE, name, job);
        actionParam.put("taskSourceId", batchTask.getId());
        actionParam.put("taskType", EScheduleJobType.SYNC.getVal());
        actionParam.put("name", name);
        actionParam.put("computeType", batchTask.getComputeType());
        actionParam.put("sqlText", "");
        actionParam.put("taskParams", taskParams);
        actionParam.put("tenantId", tenantId);
        actionParam.put("sourceType", SourceType.TEMP_QUERY.getType());
        actionParam.put("isFailRetry", false);
        actionParam.put("maxRetryNum", 0);
        actionParam.put("job", job);
        actionParam.put("taskParamsToReplace", JSON.toJSONString(taskParamsToReplace));
        DataSourceType writerDataSourceType = getSyncJobWriterDataSourceType(job);
        if (Objects.nonNull(writerDataSourceType)) {
            actionParam.put("dataSourceType", writerDataSourceType.getVal());
        }
        if (Objects.nonNull(taskExeArgs)) {
            actionParam.put("exeArgs", taskExeArgs);
        }
    } catch (Exception e) {
        throw new RdosDefineException(String.format("创建数据同步job失败: %s", e.getMessage()), e);
    }
    return actionParam;
}
Also used : JSONObject(com.alibaba.fastjson.JSONObject) RdosDefineException(com.dtstack.taier.common.exception.RdosDefineException) BatchTaskParam(com.dtstack.taier.dao.domain.BatchTaskParam) DataSourceType(com.dtstack.dtcenter.loader.source.DataSourceType) JSONObject(com.alibaba.fastjson.JSONObject) RdosDefineException(com.dtstack.taier.common.exception.RdosDefineException) IOException(java.io.IOException)

Example 8 with BatchTaskParam

use of com.dtstack.taier.dao.domain.BatchTaskParam in project Taier by DTStack.

the class BatchTaskService method setTaskVariables.

private void setTaskVariables(final ScheduleTaskVO taskVO, final Long taskId) {
    final List<BatchTaskParam> taskParams = this.batchTaskParamService.getTaskParam(taskId);
    final List<Map> mapParams = new ArrayList<>();
    if (taskParams != null) {
        for (final BatchTaskParam taskParam : taskParams) {
            final Map map = new HashMap();
            map.put("type", taskParam.getType());
            map.put("paramName", taskParam.getParamName());
            map.put("paramCommand", taskParam.getParamCommand());
            mapParams.add(map);
        }
    }
    taskVO.setTaskVariables(mapParams);
}
Also used : HashMap(java.util.HashMap) BatchTaskParam(com.dtstack.taier.dao.domain.BatchTaskParam) ArrayList(java.util.ArrayList) Map(java.util.Map) HashMap(java.util.HashMap)

Aggregations

BatchTaskParam (com.dtstack.taier.dao.domain.BatchTaskParam)8 RdosDefineException (com.dtstack.taier.common.exception.RdosDefineException)5 JSONObject (com.alibaba.fastjson.JSONObject)3 ArrayList (java.util.ArrayList)3 DataSourceType (com.dtstack.dtcenter.loader.source.DataSourceType)2 IOException (java.io.IOException)2 HashMap (java.util.HashMap)2 Map (java.util.Map)2 JSON (com.alibaba.fastjson.JSON)1 JSONArray (com.alibaba.fastjson.JSONArray)1 JSONPath (com.alibaba.fastjson.JSONPath)1 TypeReference (com.alibaba.fastjson.TypeReference)1 ClientCache (com.dtstack.dtcenter.loader.client.ClientCache)1 IClient (com.dtstack.dtcenter.loader.client.IClient)1 IKerberos (com.dtstack.dtcenter.loader.client.IKerberos)1 ColumnMetaDTO (com.dtstack.dtcenter.loader.dto.ColumnMetaDTO)1 SqlQueryDTO (com.dtstack.dtcenter.loader.dto.SqlQueryDTO)1 ISourceDTO (com.dtstack.dtcenter.loader.dto.source.ISourceDTO)1 PatternConstant (com.dtstack.taier.common.constant.PatternConstant)1 CatalogueType (com.dtstack.taier.common.enums.CatalogueType)1