|
|
@ -6,11 +6,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
import com.google.common.collect.Lists; |
|
|
|
import com.google.common.collect.Lists; |
|
|
|
import com.google.common.util.concurrent.ThreadFactoryBuilder; |
|
|
|
import com.google.common.util.concurrent.ThreadFactoryBuilder; |
|
|
|
|
|
|
|
import com.hnac.hzims.common.constant.CommonConstant; |
|
|
|
import com.hnac.hzims.equipment.entity.WorkshopInfoEntity; |
|
|
|
import com.hnac.hzims.equipment.entity.WorkshopInfoEntity; |
|
|
|
import com.hnac.hzims.equipment.vo.EminfoAndEmParamVo; |
|
|
|
import com.hnac.hzims.equipment.vo.EminfoAndEmParamVo; |
|
|
|
|
|
|
|
import com.hnac.hzims.message.dto.MailPushDto; |
|
|
|
|
|
|
|
import com.hnac.hzims.message.fegin.IPushMsgClient; |
|
|
|
import com.hnac.hzims.operational.config.enume.ConfigStatus; |
|
|
|
import com.hnac.hzims.operational.config.enume.ConfigStatus; |
|
|
|
import com.hnac.hzims.operational.config.vo.StationRealVo; |
|
|
|
import com.hnac.hzims.operational.config.vo.StationRealVo; |
|
|
|
import com.hnac.hzims.operational.main.constant.HomePageConstant; |
|
|
|
import com.hnac.hzims.operational.main.constant.HomePageConstant; |
|
|
|
|
|
|
|
import com.hnac.hzims.operational.main.vo.AreaMonthReportVo; |
|
|
|
import com.hnac.hzims.operational.main.vo.RealAttributeVo; |
|
|
|
import com.hnac.hzims.operational.main.vo.RealAttributeVo; |
|
|
|
import com.hnac.hzims.operational.main.vo.RealDeviceVo; |
|
|
|
import com.hnac.hzims.operational.main.vo.RealDeviceVo; |
|
|
|
import com.hnac.hzims.operational.main.vo.RealStationVo; |
|
|
|
import com.hnac.hzims.operational.main.vo.RealStationVo; |
|
|
@ -35,6 +39,7 @@ import org.springblade.core.tool.api.R; |
|
|
|
import org.springblade.core.tool.utils.*; |
|
|
|
import org.springblade.core.tool.utils.*; |
|
|
|
import org.springblade.system.entity.Dept; |
|
|
|
import org.springblade.system.entity.Dept; |
|
|
|
import org.springblade.system.feign.ISysClient; |
|
|
|
import org.springblade.system.feign.ISysClient; |
|
|
|
|
|
|
|
import org.springblade.system.user.entity.User; |
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
import org.springframework.data.redis.core.RedisTemplate; |
|
|
|
import org.springframework.data.redis.core.RedisTemplate; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
@ -76,6 +81,8 @@ public class MonitorServiceImpl implements MonitorService { |
|
|
|
|
|
|
|
|
|
|
|
private final RedisClient redisClient; |
|
|
|
private final RedisClient redisClient; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private final IPushMsgClient pushMsgClient; |
|
|
|
|
|
|
|
|
|
|
|
private final IAnalyseDataSearchClient analyseDataSearchClient; |
|
|
|
private final IAnalyseDataSearchClient analyseDataSearchClient; |
|
|
|
|
|
|
|
|
|
|
|
private static final ExecutorService pool = new ThreadPoolExecutor(10, 10, 60L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(256), new ThreadFactoryBuilder().setNameFormat("load-monitoring-pool-%d").build(), new ThreadPoolExecutor.CallerRunsPolicy()); |
|
|
|
private static final ExecutorService pool = new ThreadPoolExecutor(10, 10, 60L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(256), new ThreadFactoryBuilder().setNameFormat("load-monitoring-pool-%d").build(), new ThreadPoolExecutor.CallerRunsPolicy()); |
|
|
@ -227,6 +234,8 @@ public class MonitorServiceImpl implements MonitorService { |
|
|
|
boolean flag = countDownLatch.await(3,TimeUnit.SECONDS); |
|
|
|
boolean flag = countDownLatch.await(3,TimeUnit.SECONDS); |
|
|
|
if(!flag){ |
|
|
|
if(!flag){ |
|
|
|
log.error("实时数据调度发生阻塞 : {}" , DateUtil.format(new Date(),DateUtil.PATTERN_DATETIME)); |
|
|
|
log.error("实时数据调度发生阻塞 : {}" , DateUtil.format(new Date(),DateUtil.PATTERN_DATETIME)); |
|
|
|
|
|
|
|
// 发生邮件
|
|
|
|
|
|
|
|
this.sendMonthReport("实时数据运行堵塞"); |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (InterruptedException e) { |
|
|
|
} catch (InterruptedException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
e.printStackTrace(); |
|
|
@ -331,6 +340,8 @@ public class MonitorServiceImpl implements MonitorService { |
|
|
|
boolean flag = countDownLatch.await(2,TimeUnit.SECONDS); |
|
|
|
boolean flag = countDownLatch.await(2,TimeUnit.SECONDS); |
|
|
|
if(!flag){ |
|
|
|
if(!flag){ |
|
|
|
log.error("集中监控数据调度发生阻塞 : {}" , DateUtil.format(new Date(),DateUtil.PATTERN_DATETIME)); |
|
|
|
log.error("集中监控数据调度发生阻塞 : {}" , DateUtil.format(new Date(),DateUtil.PATTERN_DATETIME)); |
|
|
|
|
|
|
|
// 发生邮件
|
|
|
|
|
|
|
|
this.sendMonthReport("集中监控数据运行堵塞"); |
|
|
|
} |
|
|
|
} |
|
|
|
} catch (InterruptedException e) { |
|
|
|
} catch (InterruptedException e) { |
|
|
|
e.printStackTrace(); |
|
|
|
e.printStackTrace(); |
|
|
@ -748,4 +759,24 @@ public class MonitorServiceImpl implements MonitorService { |
|
|
|
} |
|
|
|
} |
|
|
|
return result; |
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* 推送当月月报 |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
private void sendMonthReport(String text) { |
|
|
|
|
|
|
|
// 发送邮件
|
|
|
|
|
|
|
|
MailPushDto pushDto = new MailPushDto(); |
|
|
|
|
|
|
|
pushDto.setBusinessClassify("system"); |
|
|
|
|
|
|
|
pushDto.setBusinessKey("Run_Blocking"); |
|
|
|
|
|
|
|
pushDto.setSubject(text); |
|
|
|
|
|
|
|
pushDto.setText(text); |
|
|
|
|
|
|
|
pushDto.setToAccount(Collections.singletonList("1069818635@qq.com").toArray(new String[0])); |
|
|
|
|
|
|
|
pushDto.setHtml(false); |
|
|
|
|
|
|
|
pushDto.setCreateUser(CommonConstant.SYSTEM_USER); |
|
|
|
|
|
|
|
pushDto.setTenantId(CommonConstant.TENANT_ID); |
|
|
|
|
|
|
|
pushDto.setCreateDept(CommonConstant.SYSTEM_DEPT_ID); |
|
|
|
|
|
|
|
pushDto.setMailType(0); |
|
|
|
|
|
|
|
pushDto.setFromAccount("huangxing951023@163.com"); |
|
|
|
|
|
|
|
pushMsgClient.sendMail(pushDto); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |