Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
502e6503
提交
502e6503
authored
11月 10, 2018
作者:
xuxueli
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
调度中心告警邮件发送组件改为 “spring-boot-starter-mail”;
上级
715a4075
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
73 行增加
和
144 行删除
+73
-144
XXL-JOB官方文档.md
doc/XXL-JOB官方文档.md
+13
-12
pom.xml
pom.xml
+0
-1
pom.xml
xxl-job-admin/pom.xml
+9
-6
XxlJobAdminConfig.java
...n/java/com/xxl/job/admin/core/conf/XxlJobAdminConfig.java
+19
-48
JobFailMonitorHelper.java
...a/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java
+22
-4
MailUtil.java
...n/src/main/java/com/xxl/job/admin/core/util/MailUtil.java
+0
-65
application.properties
xxl-job-admin/src/main/resources/application.properties
+8
-6
message.properties
xxl-job-admin/src/main/resources/i18n/message.properties
+1
-1
message_en.properties
xxl-job-admin/src/main/resources/i18n/message_en.properties
+1
-1
没有找到文件。
doc/XXL-JOB官方文档.md
浏览文件 @
502e6503
...
@@ -295,19 +295,19 @@ XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是
...
@@ -295,19 +295,19 @@ XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是
调度中心配置内容说明:
调度中心配置内容说明:
### 调度中心JDBC链接:链接地址请保持和 2.1章节 所创建的调度数据库的地址一致
### 调度中心JDBC链接:链接地址请保持和 2.1章节 所创建的调度数据库的地址一致
xxl.job.db.driverClass=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl-job?Unicode=true&characterEncoding=UTF-8
xxl.job.db.url=jdbc:mysql://localhost:3306/xxl-job?useUnicode=true&characterEncoding=UTF-8
spring.datasource.username=root
xxl.job.db.user=root
spring.datasource.password=root_pwd
xxl.job.db.password=root_pwd
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
### 报警邮箱
### 报警邮箱
xxl.job.mail.host=smtp.163
.com
spring.mail.host=smtp.qq
.com
xxl.job
.mail.port=25
spring
.mail.port=25
xxl.job.mail.ssl=false
spring.mail.username=xxx@qq.com
xxl.job.mail.username=ovono802302@163.com
spring.mail.password=xxx
xxl.job.mail.password=asdfzxcv
spring.mail.properties.mail.smtp.auth=true
xxl.job.mail.sendFrom=ovono802302@163.com
spring.mail.properties.mail.smtp.starttls.enable=true
xxl.job.mail.sendNick=《任务调度平台XXL-JOB》
spring.mail.properties.mail.smtp.starttls.required=true
### 登录账号
### 登录账号
xxl.job.login.username=admin
xxl.job.login.username=admin
...
@@ -1388,7 +1388,8 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
...
@@ -1388,7 +1388,8 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
-
5、执行器启动之后jetty停止的问题修复;
-
5、执行器启动之后jetty停止的问题修复;
### 6.24 版本 v2.0.2 Release Notes[迭代中]
### 6.24 版本 v2.0.2 Release Notes[迭代中]
-
1、
[
迭代中
]
任务告警逻辑调整:任务调度,以及任务回调失败时,均推送监控队列。考虑通过任务Log字段控制告警状态;
-
1、调度中心告警邮件发送组件改为 “spring-boot-starter-mail”;
-
2、
[
迭代中
]
任务告警逻辑调整:任务调度,以及任务回调失败时,均推送监控队列。考虑通过任务Log字段控制告警状态;
### TODO LIST
### TODO LIST
...
...
pom.xml
浏览文件 @
502e6503
...
@@ -40,7 +40,6 @@
...
@@ -40,7 +40,6 @@
<commons-exec.version>
1.3
</commons-exec.version>
<commons-exec.version>
1.3
</commons-exec.version>
<commons-collections4.version>
4.2
</commons-collections4.version>
<commons-collections4.version>
4.2
</commons-collections4.version>
<commons-lang3.version>
3.8.1
</commons-lang3.version>
<commons-lang3.version>
3.8.1
</commons-lang3.version>
<commons-email.version>
1.5
</commons-email.version>
<groovy-all.version>
2.5.3
</groovy-all.version>
<groovy-all.version>
2.5.3
</groovy-all.version>
<quartz.version>
2.3.0
</quartz.version>
<quartz.version>
2.3.0
</quartz.version>
...
...
xxl-job-admin/pom.xml
浏览文件 @
502e6503
...
@@ -69,6 +69,12 @@
...
@@ -69,6 +69,12 @@
<artifactId>
spring-boot-starter-freemarker
</artifactId>
<artifactId>
spring-boot-starter-freemarker
</artifactId>
</dependency>
</dependency>
<!-- mail-starter -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-mail
</artifactId>
</dependency>
<!-- mybatis-starter:mybatis + mybatis-spring + tomcat-jdbc(default) -->
<!-- mybatis-starter:mybatis + mybatis-spring + tomcat-jdbc(default) -->
<dependency>
<dependency>
<groupId>
org.mybatis.spring.boot
</groupId>
<groupId>
org.mybatis.spring.boot
</groupId>
...
@@ -94,12 +100,9 @@
...
@@ -94,12 +100,9 @@
<artifactId>
commons-lang3
</artifactId>
<artifactId>
commons-lang3
</artifactId>
<version>
${commons-lang3.version}
</version>
<version>
${commons-lang3.version}
</version>
</dependency>
</dependency>
<!-- commons-email -->
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-email
</artifactId>
<version>
${commons-email.version}
</version>
</dependency>
<!-- quartz :quartz-2.2.3/c3p0-0.9.1.1/slf4j-api-1.6.6 -->
<!-- quartz :quartz-2.2.3/c3p0-0.9.1.1/slf4j-api-1.6.6 -->
<dependency>
<dependency>
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobAdminConfig.java
浏览文件 @
502e6503
...
@@ -8,6 +8,7 @@ import com.xxl.job.core.biz.AdminBiz;
...
@@ -8,6 +8,7 @@ import com.xxl.job.core.biz.AdminBiz;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.mail.javamail.JavaMailSender
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
...
@@ -30,24 +31,6 @@ public class XxlJobAdminConfig implements InitializingBean{
...
@@ -30,24 +31,6 @@ public class XxlJobAdminConfig implements InitializingBean{
// conf
// conf
@Value
(
"${xxl.job.mail.host}"
)
private
String
mailHost
;
@Value
(
"${xxl.job.mail.port}"
)
private
String
mailPort
;
@Value
(
"${xxl.job.mail.ssl}"
)
private
boolean
mailSSL
;
@Value
(
"${xxl.job.mail.username}"
)
private
String
mailUsername
;
@Value
(
"${xxl.job.mail.password}"
)
private
String
mailPassword
;
@Value
(
"${xxl.job.mail.sendNick}"
)
private
String
mailSendNick
;
@Value
(
"${xxl.job.login.username}"
)
@Value
(
"${xxl.job.login.username}"
)
private
String
loginUsername
;
private
String
loginUsername
;
...
@@ -60,43 +43,23 @@ public class XxlJobAdminConfig implements InitializingBean{
...
@@ -60,43 +43,23 @@ public class XxlJobAdminConfig implements InitializingBean{
@Value
(
"${xxl.job.accessToken}"
)
@Value
(
"${xxl.job.accessToken}"
)
private
String
accessToken
;
private
String
accessToken
;
@Value
(
"${spring.mail.username}"
)
private
String
emailUserName
;
// dao, service
// dao, service
@Resource
@Resource
p
ublic
XxlJobLogDao
xxlJobLogDao
;
p
rivate
XxlJobLogDao
xxlJobLogDao
;
@Resource
@Resource
p
ublic
XxlJobInfoDao
xxlJobInfoDao
;
p
rivate
XxlJobInfoDao
xxlJobInfoDao
;
@Resource
@Resource
p
ublic
XxlJobRegistryDao
xxlJobRegistryDao
;
p
rivate
XxlJobRegistryDao
xxlJobRegistryDao
;
@Resource
@Resource
p
ublic
XxlJobGroupDao
xxlJobGroupDao
;
p
rivate
XxlJobGroupDao
xxlJobGroupDao
;
@Resource
@Resource
public
AdminBiz
adminBiz
;
private
AdminBiz
adminBiz
;
@Resource
private
JavaMailSender
mailSender
;
public
String
getMailHost
()
{
return
mailHost
;
}
public
String
getMailPort
()
{
return
mailPort
;
}
public
boolean
isMailSSL
()
{
return
mailSSL
;
}
public
String
getMailUsername
()
{
return
mailUsername
;
}
public
String
getMailPassword
()
{
return
mailPassword
;
}
public
String
getMailSendNick
()
{
return
mailSendNick
;
}
public
String
getLoginUsername
()
{
public
String
getLoginUsername
()
{
return
loginUsername
;
return
loginUsername
;
...
@@ -114,6 +77,10 @@ public class XxlJobAdminConfig implements InitializingBean{
...
@@ -114,6 +77,10 @@ public class XxlJobAdminConfig implements InitializingBean{
return
accessToken
;
return
accessToken
;
}
}
public
String
getEmailUserName
()
{
return
emailUserName
;
}
public
XxlJobLogDao
getXxlJobLogDao
()
{
public
XxlJobLogDao
getXxlJobLogDao
()
{
return
xxlJobLogDao
;
return
xxlJobLogDao
;
}
}
...
@@ -134,4 +101,8 @@ public class XxlJobAdminConfig implements InitializingBean{
...
@@ -134,4 +101,8 @@ public class XxlJobAdminConfig implements InitializingBean{
return
adminBiz
;
return
adminBiz
;
}
}
public
JavaMailSender
getMailSender
()
{
return
mailSender
;
}
}
}
xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java
浏览文件 @
502e6503
...
@@ -4,16 +4,18 @@ import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
...
@@ -4,16 +4,18 @@ import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobGroup
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.model.XxlJobInfo
;
import
com.xxl.job.admin.core.model.XxlJobLog
;
import
com.xxl.job.admin.core.model.XxlJobLog
;
import
com.xxl.job.admin.core.schedule.XxlJobDynamicScheduler
;
import
com.xxl.job.admin.core.trigger.TriggerTypeEnum
;
import
com.xxl.job.admin.core.trigger.TriggerTypeEnum
;
import
com.xxl.job.admin.core.util.I18nUtil
;
import
com.xxl.job.admin.core.util.I18nUtil
;
import
com.xxl.job.admin.core.util.MailUtil
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.core.handler.IJobHandler
;
import
com.xxl.job.core.handler.IJobHandler
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.mail.javamail.MimeMessageHelper
;
import
javax.mail.MessagingException
;
import
javax.mail.internet.MimeMessage
;
import
java.io.UnsupportedEncodingException
;
import
java.text.MessageFormat
;
import
java.text.MessageFormat
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.LinkedBlockingQueue
;
import
java.util.concurrent.LinkedBlockingQueue
;
...
@@ -173,7 +175,7 @@ public class JobFailMonitorHelper {
...
@@ -173,7 +175,7 @@ public class JobFailMonitorHelper {
String
alarmContent
=
"Alarm Job LogId="
+
jobLog
.
getId
();
String
alarmContent
=
"Alarm Job LogId="
+
jobLog
.
getId
();
if
(
jobLog
.
getTriggerCode
()
!=
ReturnT
.
SUCCESS_CODE
)
{
if
(
jobLog
.
getTriggerCode
()
!=
ReturnT
.
SUCCESS_CODE
)
{
alarmContent
+=
"<br>TriggerMsg="
+
jobLog
.
getTriggerMsg
();
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
();
alarmContent
+=
"<br>HandleCode="
+
jobLog
.
getHandleMsg
();
...
@@ -183,6 +185,7 @@ public class JobFailMonitorHelper {
...
@@ -183,6 +185,7 @@ public class JobFailMonitorHelper {
for
(
String
email:
emailSet
)
{
for
(
String
email:
emailSet
)
{
XxlJobGroup
group
=
XxlJobAdminConfig
.
getAdminConfig
().
getXxlJobGroupDao
().
load
(
Integer
.
valueOf
(
info
.
getJobGroup
()));
XxlJobGroup
group
=
XxlJobAdminConfig
.
getAdminConfig
().
getXxlJobGroupDao
().
load
(
Integer
.
valueOf
(
info
.
getJobGroup
()));
String
personal
=
I18nUtil
.
getString
(
"admin_name_full"
);
String
title
=
I18nUtil
.
getString
(
"jobconf_monitor"
);
String
title
=
I18nUtil
.
getString
(
"jobconf_monitor"
);
String
content
=
MessageFormat
.
format
(
mailBodyTemplate
,
String
content
=
MessageFormat
.
format
(
mailBodyTemplate
,
group
!=
null
?
group
.
getTitle
():
"null"
,
group
!=
null
?
group
.
getTitle
():
"null"
,
...
@@ -190,7 +193,22 @@ public class JobFailMonitorHelper {
...
@@ -190,7 +193,22 @@ public class JobFailMonitorHelper {
info
.
getJobDesc
(),
info
.
getJobDesc
(),
alarmContent
);
alarmContent
);
MailUtil
.
sendMail
(
email
,
title
,
content
);
// make mail
try
{
MimeMessage
mimeMessage
=
XxlJobAdminConfig
.
getAdminConfig
().
getMailSender
().
createMimeMessage
();
MimeMessageHelper
helper
=
new
MimeMessageHelper
(
mimeMessage
,
true
);
helper
.
setFrom
(
XxlJobAdminConfig
.
getAdminConfig
().
getEmailUserName
(),
personal
);
helper
.
setTo
(
email
);
helper
.
setSubject
(
title
);
helper
.
setText
(
content
,
true
);
XxlJobAdminConfig
.
getAdminConfig
().
getMailSender
().
send
(
mimeMessage
);
}
catch
(
UnsupportedEncodingException
|
MessagingException
e
)
{
logger
.
error
(
">>>>>>>>>>> job monitor alarm email send error, JobLogId:{}"
,
jobLog
.
getId
(),
e
);
}
}
}
}
}
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/MailUtil.java
deleted
100644 → 0
浏览文件 @
715a4075
package
com
.
xxl
.
job
.
admin
.
core
.
util
;
import
com.xxl.job.admin.core.conf.XxlJobAdminConfig
;
import
org.apache.commons.mail.DefaultAuthenticator
;
import
org.apache.commons.mail.EmailException
;
import
org.apache.commons.mail.HtmlEmail
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.nio.charset.Charset
;
/**
* 邮件发送.Util
*
* @author xuxueli 2016-3-12 15:06:20
*/
public
class
MailUtil
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
MailUtil
.
class
);
/**
*
* @param toAddress 收件人邮箱
* @param mailSubject 邮件主题
* @param mailBody 邮件正文
* @return
*/
public
static
boolean
sendMail
(
String
toAddress
,
String
mailSubject
,
String
mailBody
){
try
{
// Create the email message
HtmlEmail
email
=
new
HtmlEmail
();
//email.setDebug(true); // 将会打印一些log
//email.setTLS(true); // 是否TLS校验,,某些邮箱需要TLS安全校验,同理有SSL校验
//email.setSSL(true);
email
.
setHostName
(
XxlJobAdminConfig
.
getAdminConfig
().
getMailHost
());
if
(
XxlJobAdminConfig
.
getAdminConfig
().
isMailSSL
())
{
email
.
setSslSmtpPort
(
XxlJobAdminConfig
.
getAdminConfig
().
getMailPort
());
email
.
setSSLOnConnect
(
true
);
}
else
{
email
.
setSmtpPort
(
Integer
.
valueOf
(
XxlJobAdminConfig
.
getAdminConfig
().
getMailPort
()));
}
email
.
setAuthenticator
(
new
DefaultAuthenticator
(
XxlJobAdminConfig
.
getAdminConfig
().
getMailUsername
(),
XxlJobAdminConfig
.
getAdminConfig
().
getMailPassword
()));
email
.
setCharset
(
"UTF-8"
);
email
.
setFrom
(
XxlJobAdminConfig
.
getAdminConfig
().
getMailUsername
(),
XxlJobAdminConfig
.
getAdminConfig
().
getMailSendNick
());
email
.
addTo
(
toAddress
);
email
.
setSubject
(
mailSubject
);
email
.
setMsg
(
mailBody
);
//email.attach(attachment); // add the attachment
email
.
send
();
// send the email
return
true
;
}
catch
(
EmailException
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
}
return
false
;
}
}
xxl-job-admin/src/main/resources/application.properties
浏览文件 @
502e6503
...
@@ -28,12 +28,14 @@ spring.datasource.tomcat.max-active=30
...
@@ -28,12 +28,14 @@ spring.datasource.tomcat.max-active=30
spring.datasource.tomcat.test-on-borrow
=
true
spring.datasource.tomcat.test-on-borrow
=
true
### xxl-job email
### xxl-job email
xxl.job.mail.host
=
smtp.163.com
spring.mail.host
=
smtp.qq.com
xxl.job.mail.port
=
25
spring.mail.port
=
25
xxl.job.mail.ssl
=
false
spring.mail.username
=
xxx@qq.com
xxl.job.mail.username
=
ovono802302@163.com
spring.mail.password
=
xxx
xxl.job.mail.password
=
asdfzxcv
spring.mail.properties.mail.smtp.auth
=
true
xxl.job.mail.sendNick
=
《任务调度平台XXL-JOB》
spring.mail.properties.mail.smtp.starttls.enable
=
true
spring.mail.properties.mail.smtp.starttls.required
=
true
### xxl-job login
### xxl-job login
xxl.job.login.username
=
admin
xxl.job.login.username
=
admin
...
...
xxl-job-admin/src/main/resources/i18n/message.properties
浏览文件 @
502e6503
...
@@ -209,7 +209,7 @@ jobconf_route_busyover=忙碌转移
...
@@ -209,7 +209,7 @@ jobconf_route_busyover=忙碌转移
jobconf_route_shard
=
分片广播
jobconf_route_shard
=
分片广播
jobconf_idleBeat
=
空闲检测
jobconf_idleBeat
=
空闲检测
jobconf_beat
=
心跳检测
jobconf_beat
=
心跳检测
jobconf_monitor
=
调度中心监控报警
jobconf_monitor
=
任务
调度中心监控报警
jobconf_monitor_detail
=
监控告警明细
jobconf_monitor_detail
=
监控告警明细
jobconf_monitor_alarm_title
=
告警类型
jobconf_monitor_alarm_title
=
告警类型
jobconf_monitor_alarm_type
=
调度失败
jobconf_monitor_alarm_type
=
调度失败
...
...
xxl-job-admin/src/main/resources/i18n/message_en.properties
浏览文件 @
502e6503
...
@@ -209,7 +209,7 @@ jobconf_route_busyover=Busyover
...
@@ -209,7 +209,7 @@ jobconf_route_busyover=Busyover
jobconf_route_shard
=
Sharding Broadcast
jobconf_route_shard
=
Sharding Broadcast
jobconf_idleBeat
=
Idle check
jobconf_idleBeat
=
Idle check
jobconf_beat
=
Heartbeats
jobconf_beat
=
Heartbeats
jobconf_monitor
=
Scheduling Center monitor alarm
jobconf_monitor
=
Task
Scheduling Center monitor alarm
jobconf_monitor_detail
=
monitor alarm details
jobconf_monitor_detail
=
monitor alarm details
jobconf_monitor_alarm_title
=
Alarm Type
jobconf_monitor_alarm_title
=
Alarm Type
jobconf_monitor_alarm_type
=
Trigger Fail
jobconf_monitor_alarm_type
=
Trigger Fail
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论