| | |
| | | import org.springframework.mail.javamail.MimeMessageHelper; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.mail.internet.MimeMessage; |
| | | import jakarta.mail.internet.MimeMessage; |
| | | import java.text.MessageFormat; |
| | | import java.util.Arrays; |
| | | import java.util.HashSet; |
| | |
| | | * |
| | | * @param jobLog |
| | | */ |
| | | public boolean doAlarm(XxlJobInfo info, XxlJobLog jobLog){ |
| | | @Override |
| | | public boolean doAlarm(XxlJobInfo info, XxlJobLog jobLog) { |
| | | boolean alarmResult = true; |
| | | |
| | | // send monitor email |
| | | if (info!=null && info.getAlarmEmail()!=null && info.getAlarmEmail().trim().length()>0) { |
| | | if (info != null && info.getAlarmEmail() != null && info.getAlarmEmail().trim().length() > 0) { |
| | | |
| | | // alarmContent |
| | | String alarmContent = "Alarm Job LogId=" + jobLog.getId(); |
| | | if (jobLog.getTriggerCode() != ReturnT.SUCCESS_CODE) { |
| | | alarmContent += "<br>TriggerMsg=<br>" + jobLog.getTriggerMsg(); |
| | | } |
| | | if (jobLog.getHandleCode()>0 && jobLog.getHandleCode() != ReturnT.SUCCESS_CODE) { |
| | | if (jobLog.getHandleCode() > 0 && jobLog.getHandleCode() != ReturnT.SUCCESS_CODE) { |
| | | alarmContent += "<br>HandleCode=" + jobLog.getHandleMsg(); |
| | | } |
| | | |
| | |
| | | String personal = I18nUtil.getString("admin_name_full"); |
| | | String title = I18nUtil.getString("jobconf_monitor"); |
| | | String content = MessageFormat.format(loadEmailJobAlarmTemplate(), |
| | | group!=null?group.getTitle():"null", |
| | | info.getId(), |
| | | info.getJobDesc(), |
| | | alarmContent); |
| | | group != null ? group.getTitle() : "null", |
| | | info.getId(), |
| | | info.getJobDesc(), |
| | | alarmContent); |
| | | |
| | | Set<String> emailSet = new HashSet<String>(Arrays.asList(info.getAlarmEmail().split(","))); |
| | | for (String email: emailSet) { |
| | | for (String email : emailSet) { |
| | | |
| | | // make mail |
| | | try { |
| | |
| | | * |
| | | * @return |
| | | */ |
| | | private static final String loadEmailJobAlarmTemplate(){ |
| | | private static final String loadEmailJobAlarmTemplate() { |
| | | String mailBodyTemplate = "<h5>" + I18nUtil.getString("jobconf_monitor_detail") + ":</span>" + |
| | | "<table border=\"1\" cellpadding=\"3\" style=\"border-collapse:collapse; width:80%;\" >\n" + |
| | | " <thead style=\"font-weight: bold;color: #ffffff;background-color: #ff8c00;\" >" + |
| | | " <tr>\n" + |
| | | " <td width=\"20%\" >"+ I18nUtil.getString("jobinfo_field_jobgroup") +"</td>\n" + |
| | | " <td width=\"10%\" >"+ I18nUtil.getString("jobinfo_field_id") +"</td>\n" + |
| | | " <td width=\"20%\" >"+ I18nUtil.getString("jobinfo_field_jobdesc") +"</td>\n" + |
| | | " <td width=\"10%\" >"+ I18nUtil.getString("jobconf_monitor_alarm_title") +"</td>\n" + |
| | | " <td width=\"40%\" >"+ I18nUtil.getString("jobconf_monitor_alarm_content") +"</td>\n" + |
| | | " </tr>\n" + |
| | | " </thead>\n" + |
| | | " <tbody>\n" + |
| | | " <tr>\n" + |
| | | " <td>{0}</td>\n" + |
| | | " <td>{1}</td>\n" + |
| | | " <td>{2}</td>\n" + |
| | | " <td>"+ I18nUtil.getString("jobconf_monitor_alarm_type") +"</td>\n" + |
| | | " <td>{3}</td>\n" + |
| | | " </tr>\n" + |
| | | " </tbody>\n" + |
| | | "</table>"; |
| | | "<table border=\"1\" cellpadding=\"3\" style=\"border-collapse:collapse; width:80%;\" >\n" + |
| | | " <thead style=\"font-weight: bold;color: #ffffff;background-color: #ff8c00;\" >" + |
| | | " <tr>\n" + |
| | | " <td width=\"20%\" >" + I18nUtil.getString("jobinfo_field_jobgroup") + "</td>\n" + |
| | | " <td width=\"10%\" >" + I18nUtil.getString("jobinfo_field_id") + "</td>\n" + |
| | | " <td width=\"20%\" >" + I18nUtil.getString("jobinfo_field_jobdesc") + "</td>\n" + |
| | | " <td width=\"10%\" >" + I18nUtil.getString("jobconf_monitor_alarm_title") + "</td>\n" + |
| | | " <td width=\"40%\" >" + I18nUtil.getString("jobconf_monitor_alarm_content") + "</td>\n" + |
| | | " </tr>\n" + |
| | | " </thead>\n" + |
| | | " <tbody>\n" + |
| | | " <tr>\n" + |
| | | " <td>{0}</td>\n" + |
| | | " <td>{1}</td>\n" + |
| | | " <td>{2}</td>\n" + |
| | | " <td>" + I18nUtil.getString("jobconf_monitor_alarm_type") + "</td>\n" + |
| | | " <td>{3}</td>\n" + |
| | | " </tr>\n" + |
| | | " </tbody>\n" + |
| | | "</table>"; |
| | | |
| | | return mailBodyTemplate; |
| | | } |