新增:hpc任务开始结束增加消息通知

This commit is contained in:
yangyang01000846
2026-01-05 09:34:33 +08:00
parent 3587489fcd
commit 5981cdad6c
3 changed files with 56 additions and 8 deletions

View File

@@ -1,13 +1,17 @@
package com.sdm.flowable.delegate.handler;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.common.ThreadLocalContext;
import com.sdm.common.config.FlowableConfig;
import com.sdm.common.entity.enums.MessageTemplateEnum;
import com.sdm.common.entity.flowable.executeConfig.HPCExecuteConfig;
import com.sdm.common.entity.req.data.GetFileBaseInfoReq;
import com.sdm.common.entity.req.pbs.SubmitHpcTaskRemoteReq;
import com.sdm.common.entity.req.system.SendMsgReq;
import com.sdm.common.entity.resp.data.FileMetadataInfoResp;
import com.sdm.common.feign.impl.system.MessageFeignClientImpl;
import com.sdm.common.feign.inter.data.IDataFeignClient;
import com.sdm.common.feign.inter.pbs.ITaskFeignClient;
import com.sdm.common.log.CoreLogger;
@@ -43,6 +47,9 @@ public class HpcHandler implements ExecutionHandler<Map<String, Object>,HPCExecu
@Autowired
private IDataFeignClient dataFeignClient;
@Autowired
private MessageFeignClientImpl messageFeignClient;
/*
* params:业务参数
* config框架属性
@@ -82,10 +89,15 @@ public class HpcHandler implements ExecutionHandler<Map<String, Object>,HPCExecu
// 1. 调用 HPC 平台提交任务
SdmResponse<String> submitResp = taskFeignClient.adapterSubmitHpcJob(submitHpcTaskRemoteReq);
if(!submitResp.isSuccess()|| StringUtils.isBlank(submitResp.getData())){
// 推送失败消息
sendMsg(ThreadLocalContext.getTenantId(),ThreadLocalContext.getUserId(),submitHpcTaskRemoteReq.getJobName(),"失败");
log.error("HpcHandler submit failed,jobName:{}",params);
throw new RuntimeException("HpcHandler submit failed,"+submitResp.getMessage());
}
String hpcTaskId = submitResp.getData();
// 推送成功消息
sendMsg(ThreadLocalContext.getTenantId(),ThreadLocalContext.getUserId(),submitHpcTaskRemoteReq.getJobName(),"成功");
CoreLogger.info("hpc task submit succ jobId:{}",hpcTaskId);
// 2. 存数据库(提交状态 + 外部任务ID
asyncTaskRecordService.registerAsyncTask(
@@ -100,6 +112,16 @@ public class HpcHandler implements ExecutionHandler<Map<String, Object>,HPCExecu
log.info("HPC 任务 {} 已提交", "hpcTaskId");
}
private void sendMsg(Long tenanId,Long userId,String jobName,String result){
SendMsgReq req = new SendMsgReq();
req.setTitle(MessageTemplateEnum.HPC_START.getTitle());
req.setContent(MessageTemplateEnum.HPC_START.getContent(jobName,result));
req.setTenantId(String.valueOf(tenanId));
req.setUserId(String.valueOf(userId));
log.info("hpc start push msg:{}", JSON.toJSONString(req));
messageFeignClient.sendMessage(req);
}
private void initUserInfo(DelegateExecution execution) {
// 获取当前流程实例参数
Long userId = (Long) execution.getVariable("userId");