feat(sj_1.0.0): 优化定时任务告警通知

This commit is contained in:
opensnail 2024-05-10 17:59:43 +08:00
parent 2fad654702
commit a7f0398746

View File

@ -45,19 +45,23 @@ import java.util.concurrent.CancellationException;
public class JobExecutorFutureCallback implements FutureCallback<ExecuteResult> {
private static final String TEXT_MESSAGE_FORMATTER = """
<font face="微软雅黑" color=#ff0000 size=4>{}环境 执行结果上报异常</font> \s
<font face="微软雅黑" color=#ff0000 size=4>{}环境 定时任务上报异常</font> \s
> IP:{} \s
> 空间ID:{} \s
> 名称:{} \s
> 时间:{} \s
> 结果:{} \s
> 异常:{} \s
\s""";
private static final JobNettyClient CLIENT = RequestBuilder.<JobNettyClient, NettyResult>newBuilder()
.client(JobNettyClient.class)
.callback(nettyResult -> SnailJobLog.LOCAL.info("Job execute result report successfully requestId:[{}]",
nettyResult.getRequestId())).build();
.callback(nettyResult -> {
if (nettyResult.getStatus() == StatusEnum.NO.getStatus()) {
sendMessage(nettyResult.getMessage());
}
SnailJobLog.LOCAL.debug("Job execute result report successfully requestId:[{}]",
nettyResult.getRequestId());
}).build();
private final JobContext jobContext;
@ -90,7 +94,7 @@ public class JobExecutorFutureCallback implements FutureCallback<ExecuteResult>
CLIENT.dispatchResult(buildDispatchJobResultRequest(result, taskStatus));
} catch (Exception e) {
SnailJobLog.REMOTE.error("执行结果上报异常.[{}]", jobContext.getTaskId(), e);
sendMessage(result, e);
sendMessage(e.getMessage());
} finally {
SnailJobLogManager.removeLogMeta();
stopThreadPool();
@ -118,7 +122,7 @@ public class JobExecutorFutureCallback implements FutureCallback<ExecuteResult>
);
} catch (Exception e) {
SnailJobLog.REMOTE.error("执行结果上报异常.[{}]", jobContext.getTaskId(), e);
sendMessage(failure, e);
sendMessage(e.getMessage());
} finally {
SnailJobLogManager.removeLogMeta();
stopThreadPool();
@ -159,7 +163,7 @@ public class JobExecutorFutureCallback implements FutureCallback<ExecuteResult>
return dispatchJobRequest;
}
private void sendMessage(final ExecuteResult result, Exception e) {
private static void sendMessage(String message) {
try {
SnailJobProperties snailJobProperties = SpringContext.getBean(SnailJobProperties.class);
@ -178,8 +182,7 @@ public class JobExecutorFutureCallback implements FutureCallback<ExecuteResult>
snailJobProperties.getNamespace(),
snailJobProperties.getGroup(),
LocalDateTime.now().format(DatePattern.NORM_DATETIME_FORMATTER),
JsonUtil.toJsonString(result),
e.getMessage())
message)
.title("定时任务执行结果上报异常:[{}]", snailJobProperties.getGroup())
.notifyAttribute(recipient.getNotifyAttribute());