[dev] formate alarm info, which is more friendly to developer

This commit is contained in:
朱八 2020-08-01 23:21:03 +08:00
parent 5c37d6e61e
commit 986aa712a0
4 changed files with 38 additions and 5 deletions

View File

@ -0,0 +1,34 @@
package com.github.kfcfans.powerjob.server.service.alarm;
import com.alibaba.fastjson.JSONObject;
import com.github.kfcfans.powerjob.common.OmsSerializable;
import com.github.kfcfans.powerjob.common.utils.CommonUtils;
import org.apache.commons.lang3.StringUtils;
/**
* 报警内容
*
* @author tjq
* @since 2020/8/1
*/
public interface AlarmContent extends OmsSerializable {
default String fetchContent() {
StringBuilder sb = new StringBuilder();
JSONObject content = JSONObject.parseObject(JSONObject.toJSONString(this));
content.forEach((key, originWord) -> {
sb.append(key).append(": ");
String word = String.valueOf(originWord);
if (StringUtils.endsWithIgnoreCase(key, "time") || StringUtils.endsWithIgnoreCase(key, "date")) {
try {
if (originWord instanceof Long) {
word = CommonUtils.formatTime((Long) originWord);
}
}catch (Exception ignore) {
}
}
sb.append(word).append("\n\r");
});
return sb.toString();
}
}

View File

@ -1,6 +1,5 @@
package com.github.kfcfans.powerjob.server.service.alarm; package com.github.kfcfans.powerjob.server.service.alarm;
import com.github.kfcfans.powerjob.common.utils.JsonUtils;
import com.github.kfcfans.powerjob.server.persistence.core.model.UserInfoDO; import com.github.kfcfans.powerjob.server.persistence.core.model.UserInfoDO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -38,13 +37,13 @@ public class DefaultMailAlarmService implements Alarmable {
@Override @Override
public void onJobInstanceFailed(JobInstanceAlarmContent content, List<UserInfoDO> targetUserList) { public void onJobInstanceFailed(JobInstanceAlarmContent content, List<UserInfoDO> targetUserList) {
String msg = String.format(JOB_INSTANCE_FAILED_CONTENT_PATTERN, JsonUtils.toJSONString(content)); String msg = String.format(JOB_INSTANCE_FAILED_CONTENT_PATTERN, content.fetchContent());
sendMail(msg, targetUserList); sendMail(msg, targetUserList);
} }
@Override @Override
public void onWorkflowInstanceFailed(WorkflowInstanceAlarmContent content, List<UserInfoDO> targetUserList) { public void onWorkflowInstanceFailed(WorkflowInstanceAlarmContent content, List<UserInfoDO> targetUserList) {
String msg = String.format(WF_INSTANCE_FAILED_CONTENT_PATTERN, JsonUtils.toJSONString(content)); String msg = String.format(WF_INSTANCE_FAILED_CONTENT_PATTERN, content.fetchContent());
sendMail(msg, targetUserList); sendMail(msg, targetUserList);
} }

View File

@ -9,7 +9,7 @@ import lombok.Data;
* @since 2020/4/30 * @since 2020/4/30
*/ */
@Data @Data
public class JobInstanceAlarmContent { public class JobInstanceAlarmContent implements AlarmContent {
// 应用ID // 应用ID
private long appId; private long appId;
// 任务ID // 任务ID

View File

@ -10,7 +10,7 @@ import lombok.Data;
* @since 2020/6/12 * @since 2020/6/12
*/ */
@Data @Data
public class WorkflowInstanceAlarmContent { public class WorkflowInstanceAlarmContent implements AlarmContent {
private String workflowName; private String workflowName;