Browse Source

fix: 修复消息发送逻辑

master_tdsql
hxh 4 months ago
parent
commit
1c17f271a2
  1. 11
      shuili-system/src/main/java/com/kms/yxgh/common/job/config/PoolConfig.java
  2. 6
      shuili-system/src/main/java/com/kms/yxgh/common/job/handler/AbstractSendMessageHandler.java
  3. 3
      shuili-system/src/main/java/com/kms/yxgh/common/job/handler/DfCheckingPlanSendMessageHandler.java

11
shuili-system/src/main/java/com/kms/yxgh/common/job/config/PoolConfig.java

@ -2,6 +2,9 @@ package com.kms.yxgh.common.job.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.context.event.ApplicationEventMulticaster;
import org.springframework.context.event.SimpleApplicationEventMulticaster;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
@ -10,6 +13,7 @@ import java.util.concurrent.Executor;
public class PoolConfig {
@Primary
@Bean(name = "syncDataPool")
public Executor syncDataPool() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
@ -20,4 +24,11 @@ public class PoolConfig {
return executor;
}
@Bean
public ApplicationEventMulticaster applicationEventMulticaster() {
SimpleApplicationEventMulticaster eventMulticaster = new SimpleApplicationEventMulticaster();
eventMulticaster.setTaskExecutor(syncDataPool());
return eventMulticaster;
}
}

6
shuili-system/src/main/java/com/kms/yxgh/common/job/handler/AbstractSendMessageHandler.java

@ -47,6 +47,7 @@ public abstract class AbstractSendMessageHandler implements JobHandler {
@Override
public JobTask runJob(JobTask jobTask) {
log.info("发送消息任务开始执行:{}", JSON.toJSONString(jobTask));
List<MsgVo> messages = getMessagesAndUpdateJobTask(jobTask);
sendMessage(messages);
return jobTask;
@ -89,7 +90,7 @@ public abstract class AbstractSendMessageHandler implements JobHandler {
private void sendMessage(List<MsgVo> messages) {
if (StringUtils.isNotBlank(messageUrl)) {
if (StringUtils.isBlank(messageUrl)) {
log.warn("消息发送地址为空");
return;
}
@ -100,9 +101,10 @@ public abstract class AbstractSendMessageHandler implements JobHandler {
HttpRequest httpRequest = HttpRequest.post(messageUrl).body(JSON.toJSONString(messages));
setHead(httpRequest);
try (HttpResponse response = httpRequest.execute()) {
if (!response.isOk()) {
if (response.isOk()) {
String body = response.body();
WaterResult waterResult = JSONObject.parseObject(body, WaterResult.class);
log.debug("消息[{}]发送结果:{}", JSONObject.toJSONString(messages), body);
isSuccess(waterResult);
} else {
log.error("消息发送失败");

3
shuili-system/src/main/java/com/kms/yxgh/common/job/handler/DfCheckingPlanSendMessageHandler.java

@ -2,6 +2,7 @@ package com.kms.yxgh.common.job.handler;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.kms.yxgh.common.domain.JobTask;
import com.kms.yxgh.common.job.JobStatus;
import com.kms.yxgh.df.dto.DfCheckingPlanContentDto;
@ -40,6 +41,7 @@ public class DfCheckingPlanSendMessageHandler extends AbstractSendMessageHandler
if (optional.isPresent()) {
DfCheckingPlanContentDto content = optional.get();
if (CollectionUtil.isEmpty(content.getOperator())) {
log.info("操作者为空, jobTask:[{}],content:[{}]", JSON.toJSONString(jobTask), JSON.toJSONString(content));
return Collections.emptyList();
}
Date nextTime = getNextTime(dto, jobTask.getNextStartTime());
@ -48,6 +50,7 @@ public class DfCheckingPlanSendMessageHandler extends AbstractSendMessageHandler
} else {
jobTask.setStatus(JobStatus.FINISH.getCode());
}
log.info("组装数据, jobTask:[{}],content:[{}]", JSON.toJSONString(jobTask), JSON.toJSONString(content));
return content.getOperator().stream()
.map(operator -> {
MsgVo msgVo = new MsgVo();

Loading…
Cancel
Save