|
|
|
@ -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) {
|
|
|
|
|