定时任务异常通知

网关返回信息类型改为 BaseResultBean
添加队列监听开关
yun-zuoyi
yunhao.wang 6 years ago
parent b58583602b
commit e094e9c5ee

@ -17,6 +17,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.stereotype.Component;
import java.io.IOException;
@ -29,6 +30,7 @@ import java.util.List;
* @CreateDate : 2018-11-15 22:35
* @Modify:
**/
@ConditionalOnExpression("'${impp.mq.queue.letter}' == 'true'")
@Component
public class MessageLetterQueueReceiver {
private static final Logger LOGGER = LoggerFactory.getLogger(MessageLetterQueueReceiver.class);

@ -17,6 +17,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.stereotype.Component;
import java.io.IOException;
@ -28,6 +29,7 @@ import java.io.IOException;
* @CreateDate : 2018-11-15 22:15
* @Modify:
**/
@ConditionalOnExpression("'${impp.mq.queue.mail}' == 'true'")
@Component
public class MessageMailQueueReceiver {
private static final Logger LOGGER = LoggerFactory.getLogger(MessageMailQueueReceiver.class);
@ -54,14 +56,21 @@ public class MessageMailQueueReceiver {
// 系统预警邮件与用户邮件判断
if(PlatformConstWords.CONTACT_MAIL.equals(msg.getMessageReceiversId())){
// 发送邮件
mailUtil.setSubject(msg.getMessageTitle());
mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.valueOfDescription(msg.getMessageContentType()));
mailUtil.setBody(msg.getMessageContent());
// 发送给系统配置中的紧急联系人
mailUtil.setTo(sysConfigService.getSysConfigByCode(PlatformConstWords.CONTACT_MAIL).getConfigValue());
//信息已处理
mailUtil.send();
}else {
} else if(PlatformConstWords.EXTERNAL_MAIL.equals(msg.getMessageReceiversId())){ //判断是否为外部邮件
mailUtil.setSubject(msg.getMessageTitle());
mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.valueOfDescription(msg.getMessageContentType()));
mailUtil.setBody(msg.getMessageContent());
mailUtil.setTo(StringUtils.split(msg.getMessageReceiversNameRdd(),","));
mailUtil.send();
} else{
// 收件人信息
String[] messageReceiver = msg.getMessageReceiversId().split(",");
@ -86,7 +95,7 @@ public class MessageMailQueueReceiver {
sysMessageService.insertSysRefUserMessage(refUserMessage);
// 发送邮件
// 设置邮件主题内容及收件人
mailUtil.setSubject(msg.getMessageTitle());
mailUtil.setContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.valueOfDescription(msg.getMessageContentType()));
mailUtil.setBody(msg.getMessageContent());

@ -1,7 +1,11 @@
package cn.estsh.i3plus.core.apiservice.mq;
import cn.estsh.i3plus.core.api.iservice.busi.ISysTaskPlanService;
import cn.estsh.i3plus.platform.common.tool.TimeTool;
import cn.estsh.i3plus.platform.common.util.PlatformConstWords;
import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil;
import cn.estsh.i3plus.pojo.base.enumutil.ImppEnumUtil;
import cn.estsh.i3plus.pojo.platform.bean.SysMessage;
import cn.estsh.i3plus.pojo.platform.bean.SysTaskPlan;
import cn.estsh.i3plus.pojo.platform.platbean.SysLogTaskTime;
import com.rabbitmq.client.Channel;
@ -9,7 +13,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.stereotype.Component;
import java.io.IOException;
@ -21,6 +27,7 @@ import java.io.IOException;
* @CreateDate : 2018-12-20 21:56
* @Modify:
**/
@ConditionalOnExpression("'${impp.mq.queue.schedule}' == 'true'")
@Component
public class ScheduleQueueReceiver {
@ -29,6 +36,9 @@ public class ScheduleQueueReceiver {
@Autowired
private ISysTaskPlanService sysTaskPlanService;
@Autowired
private RabbitTemplate rabbitTemplate;
/**
*
* @param logTaskTime
@ -44,7 +54,7 @@ public class ScheduleQueueReceiver {
taskPlan.setLastRunDateTime(logTaskTime.getCreateDatetime());
taskPlan.setTaskPlanExecNum(taskPlan.getTaskPlanExecNum() + 1);
taskPlan.setTaskPlanStatus(logTaskTime.getTaskStatus());
//更新任务状态以及最后执行时间
// 更新任务状态以及最后执行时间
sysTaskPlanService.updateSysTaskPlan(taskPlan);
// 添加定时任务日志
@ -53,6 +63,35 @@ public class ScheduleQueueReceiver {
logTaskTime.setTaskCycleExpsRdd(taskPlan.getTaskCycleExpsRdd());
sysTaskPlanService.logInsertSysLogTaskTime(logTaskTime);
// 定时任务失败通知
if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == logTaskTime.getTaskStatus()
&& CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue() == taskPlan.getIsNotice()) {
// 设置通知邮件内容
SysMessage sysMessage = new SysMessage();
sysMessage.setMessageSenderNameRdd("系统管理员");
sysMessage.setMessageTitle("任务计划失败通知");
sysMessage.setMessageContent(
String.format("<p>管理员 您好:</p><div style=\"text-align:center\">任务计划(Name: %s,GroupName: %s执行失败,详细信息请查看定时任务日志(ID: %s).</div>",
taskPlan.getName(),taskPlan.getGroupName(),logTaskTime.getId())
);
sysMessage.setMessageContentType(ImppEnumUtil.MESSAGE_TYPE_CONTENT.HTML.getValue());
sysMessage.setMessageSendTime(TimeTool.getNowTime(true));
sysMessage.setIsSystem(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue());
// 是否内部成员
if (CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue() == taskPlan.getIsInternalUser()) {
sysMessage.setMessageReceiversId(PlatformConstWords.EXTERNAL_MAIL);
sysMessage.setMessageReceiversNameRdd(taskPlan.getNoticeChannel());
}
// 发送到对应处理队列
if(ImppEnumUtil.MESSAGE_TYPE.MAIL.getValue() == taskPlan.getNoticeMethod().intValue()){
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_MAIL_QUEUE,sysMessage);
}else{
rabbitTemplate.convertAndSend(PlatformConstWords.IMPP_MESSAGE_LETTER_QUEUE,sysMessage);
}
}
//信息已处理
channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);
} catch (IOException e) {

@ -118,6 +118,7 @@ impp.read.datasource.username=impp_i3_core_user
impp.read.datasource.password=impp_i3_core_pwd
##############定时任务持久化##############
impp.schedule.open=true
impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.schedule.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3306/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8
impp.schedule.datasource.username=impp_i3_schedule_user
@ -171,3 +172,8 @@ spring.datasource.validationQuery=SELECT 1
spring.jpa.properties.hibernate.hbm2ddl.auto=update
#是否显示sql
spring.jpa.show-sql=true
################ MQ队列处理 ################
impp.mq.queue.letter = true
impp.mq.queue.mail = true
impp.mq.queue.schedule = true

@ -113,6 +113,7 @@ impp.read.datasource.username=impp_i3_core_user
impp.read.datasource.password=impp_i3_core_pwd
##############定时任务持久化##############
impp.schedule.open=true
impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.schedule.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3309/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8
impp.schedule.datasource.username=impp_i3_schedule_user
@ -166,3 +167,8 @@ spring.datasource.validationQuery=SELECT 1
spring.jpa.properties.hibernate.hbm2ddl.auto=update
#是否显示sql
spring.jpa.show-sql=true
################ MQ队列处理 ################
impp.mq.queue.letter = true
impp.mq.queue.mail = true
impp.mq.queue.schedule = true

@ -118,6 +118,7 @@ impp.read.datasource.username=impp_i3_core_user
impp.read.datasource.password=impp_i3_core_pwd
##############定时任务持久化##############
impp.schedule.open=true
impp.schedule.datasource.driver-class-name=com.mysql.jdbc.Driver
impp.schedule.datasource.jdbc-url=jdbc:mysql://192.168.1.55:3308/impp_i3_schedule?autoReconnect=true&useSSL=false&characterEncoding=utf-8
impp.schedule.datasource.username=impp_i3_schedule_user
@ -171,3 +172,8 @@ spring.datasource.validationQuery=SELECT 1
spring.jpa.properties.hibernate.hbm2ddl.auto=update
#是否显示sql
spring.jpa.show-sql=true
################ MQ队列处理 ################
impp.mq.queue.letter = true
impp.mq.queue.mail = true
impp.mq.queue.schedule = true
Loading…
Cancel
Save