Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
三久
DolphinScheduler
提交
85e56b5e
DolphinScheduler
项目概览
三久
/
DolphinScheduler
与 Fork 源项目一致
Fork自
apache / DolphinScheduler
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
DolphinScheduler
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
85e56b5e
编写于
3月 28, 2022
作者:
J
JinYong Li
提交者:
GitHub
3月 28, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix 9243 (#9244)
上级
03a0c9f5
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
43 addition
and
25 deletion
+43
-25
dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/AlertDao.java
...c/main/java/org/apache/dolphinscheduler/dao/AlertDao.java
+14
-12
dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/ProjectUser.java
...a/org/apache/dolphinscheduler/dao/entity/ProjectUser.java
+15
-0
dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProjectMapper.xml
.../org/apache/dolphinscheduler/dao/mapper/ProjectMapper.xml
+1
-0
dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteThread.java
...scheduler/server/master/runner/WorkflowExecuteThread.java
+4
-2
dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/alert/ProcessAlertManager.java
...e/dolphinscheduler/service/alert/ProcessAlertManager.java
+9
-11
未找到文件。
dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/AlertDao.java
浏览文件 @
85e56b5e
...
...
@@ -25,10 +25,9 @@ import org.apache.dolphinscheduler.common.utils.JSONUtils;
import
org.apache.dolphinscheduler.dao.entity.Alert
;
import
org.apache.dolphinscheduler.dao.entity.AlertPluginInstance
;
import
org.apache.dolphinscheduler.dao.entity.ProcessAlertContent
;
import
org.apache.dolphinscheduler.dao.entity.ProcessDefinition
;
import
org.apache.dolphinscheduler.dao.entity.ProcessInstance
;
import
org.apache.dolphinscheduler.dao.entity.ProjectUser
;
import
org.apache.dolphinscheduler.dao.entity.ServerAlertContent
;
import
org.apache.dolphinscheduler.dao.entity.TaskDefinition
;
import
org.apache.dolphinscheduler.dao.entity.TaskInstance
;
import
org.apache.dolphinscheduler.dao.mapper.AlertGroupMapper
;
import
org.apache.dolphinscheduler.dao.mapper.AlertMapper
;
...
...
@@ -116,19 +115,22 @@ public class AlertDao {
* process time out alert
*
* @param processInstance processInstance
* @param pro
cessDefinition processDefinition
* @param pro
jectUser projectUser
*/
public
void
sendProcessTimeoutAlert
(
ProcessInstance
processInstance
,
Pro
cessDefinition
processDefinition
)
{
public
void
sendProcessTimeoutAlert
(
ProcessInstance
processInstance
,
Pro
jectUser
projectUser
)
{
int
alertGroupId
=
processInstance
.
getWarningGroupId
();
Alert
alert
=
new
Alert
();
List
<
ProcessAlertContent
>
processAlertContentList
=
new
ArrayList
<>(
1
);
ProcessAlertContent
processAlertContent
=
ProcessAlertContent
.
newBuilder
()
.
projectCode
(
pro
cessDefinition
.
getProjectCode
())
.
projectName
(
pro
cessDefinition
.
getProjectName
())
.
owner
(
pro
cessDefinition
.
getUserName
())
.
projectCode
(
pro
jectUser
.
getProjectCode
())
.
projectName
(
pro
jectUser
.
getProjectName
())
.
owner
(
pro
jectUser
.
getUserName
())
.
processId
(
processInstance
.
getId
())
.
processDefinitionCode
(
processInstance
.
getProcessDefinitionCode
())
.
processName
(
processInstance
.
getName
())
.
processType
(
processInstance
.
getCommandType
())
.
processState
(
processInstance
.
getState
())
.
runTimes
(
processInstance
.
getRunTimes
())
.
processStartTime
(
processInstance
.
getStartTime
())
.
processHost
(
processInstance
.
getHost
())
.
event
(
AlertEvent
.
TIME_OUT
)
...
...
@@ -154,15 +156,15 @@ public class AlertDao {
*
* @param processInstance processInstanceId
* @param taskInstance taskInstance
* @param
taskDefinition taskDefinition
* @param
projectUser projectUser
*/
public
void
sendTaskTimeoutAlert
(
ProcessInstance
processInstance
,
TaskInstance
taskInstance
,
TaskDefinition
taskDefinition
)
{
public
void
sendTaskTimeoutAlert
(
ProcessInstance
processInstance
,
TaskInstance
taskInstance
,
ProjectUser
projectUser
)
{
Alert
alert
=
new
Alert
();
List
<
ProcessAlertContent
>
processAlertContentList
=
new
ArrayList
<>(
1
);
ProcessAlertContent
processAlertContent
=
ProcessAlertContent
.
newBuilder
()
.
projectCode
(
taskDefinition
.
getProjectCode
())
.
projectName
(
taskDefinition
.
getProjectName
())
.
owner
(
taskDefinition
.
getUserName
())
.
projectCode
(
projectUser
.
getProjectCode
())
.
projectName
(
projectUser
.
getProjectName
())
.
owner
(
projectUser
.
getUserName
())
.
processId
(
processInstance
.
getId
())
.
processDefinitionCode
(
processInstance
.
getProcessDefinitionCode
())
.
processName
(
processInstance
.
getName
())
...
...
dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/ProjectUser.java
浏览文件 @
85e56b5e
...
...
@@ -38,6 +38,12 @@ public class ProjectUser {
@TableField
(
"project_id"
)
private
int
projectId
;
/**
* project code
*/
@TableField
(
exist
=
false
)
private
long
projectCode
;
/**
* project name
*/
...
...
@@ -125,12 +131,21 @@ public class ProjectUser {
this
.
perm
=
perm
;
}
public
long
getProjectCode
()
{
return
projectCode
;
}
public
void
setProjectCode
(
long
projectCode
)
{
this
.
projectCode
=
projectCode
;
}
@Override
public
String
toString
()
{
return
"ProjectUser{"
+
"id="
+
id
+
", userId="
+
userId
+
", projectId="
+
projectId
+
", projectCode="
+
projectCode
+
", projectName='"
+
projectName
+
'\''
+
", userName='"
+
userName
+
'\''
+
", perm="
+
perm
...
...
dolphinscheduler-dao/src/main/resources/org/apache/dolphinscheduler/dao/mapper/ProjectMapper.xml
浏览文件 @
85e56b5e
...
...
@@ -150,6 +150,7 @@
<select
id=
"queryProjectWithUserByProcessInstanceId"
resultType=
"org.apache.dolphinscheduler.dao.entity.ProjectUser"
>
select
dp.id project_id,
dp.code project_code,
dp.name project_name,
u.user_name user_name
from t_ds_process_instance di
...
...
dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteThread.java
浏览文件 @
85e56b5e
...
...
@@ -384,13 +384,15 @@ public class WorkflowExecuteThread {
ITaskProcessor
taskProcessor
=
activeTaskProcessorMaps
.
get
(
taskInstance
.
getTaskCode
());
taskProcessor
.
action
(
TaskAction
.
TIMEOUT
);
}
else
{
processAlertManager
.
sendTaskTimeoutAlert
(
processInstance
,
taskInstance
,
taskInstance
.
getTaskDefine
());
ProjectUser
projectUser
=
processService
.
queryProjectWithUserByProcessInstanceId
(
processInstance
.
getId
());
processAlertManager
.
sendTaskTimeoutAlert
(
processInstance
,
taskInstance
,
projectUser
);
}
return
true
;
}
private
boolean
processTimeout
()
{
this
.
processAlertManager
.
sendProcessTimeoutAlert
(
this
.
processInstance
,
this
.
processDefinition
);
ProjectUser
projectUser
=
processService
.
queryProjectWithUserByProcessInstanceId
(
processInstance
.
getId
());
this
.
processAlertManager
.
sendProcessTimeoutAlert
(
this
.
processInstance
,
projectUser
);
return
true
;
}
...
...
dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/alert/ProcessAlertManager.java
浏览文件 @
85e56b5e
...
...
@@ -26,11 +26,9 @@ import org.apache.dolphinscheduler.dao.entity.Alert;
import
org.apache.dolphinscheduler.dao.entity.DqExecuteResult
;
import
org.apache.dolphinscheduler.dao.entity.DqExecuteResultAlertContent
;
import
org.apache.dolphinscheduler.dao.entity.ProcessAlertContent
;
import
org.apache.dolphinscheduler.dao.entity.ProcessDefinition
;
import
org.apache.dolphinscheduler.dao.entity.ProcessInstance
;
import
org.apache.dolphinscheduler.dao.entity.ProjectUser
;
import
org.apache.dolphinscheduler.dao.entity.TaskAlertContent
;
import
org.apache.dolphinscheduler.dao.entity.TaskDefinition
;
import
org.apache.dolphinscheduler.dao.entity.TaskInstance
;
import
org.apache.dolphinscheduler.plugin.task.api.enums.dp.DqTaskState
;
...
...
@@ -108,7 +106,7 @@ public class ProcessAlertManager {
if
(
processInstance
.
getState
().
typeIsSuccess
())
{
List
<
ProcessAlertContent
>
successTaskList
=
new
ArrayList
<>(
1
);
ProcessAlertContent
processAlertContent
=
ProcessAlertContent
.
newBuilder
()
.
project
Id
(
projectUser
.
getProjectId
())
.
project
Code
(
projectUser
.
getProjectCode
())
.
projectName
(
projectUser
.
getProjectName
())
.
owner
(
projectUser
.
getUserName
())
.
processId
(
processInstance
.
getId
())
...
...
@@ -132,7 +130,7 @@ public class ProcessAlertManager {
continue
;
}
ProcessAlertContent
processAlertContent
=
ProcessAlertContent
.
newBuilder
()
.
project
Id
(
projectUser
.
getProjectId
())
.
project
Code
(
projectUser
.
getProjectCode
())
.
projectName
(
projectUser
.
getProjectName
())
.
owner
(
projectUser
.
getUserName
())
.
processId
(
processInstance
.
getId
())
...
...
@@ -225,7 +223,7 @@ public class ProcessAlertManager {
String
success
=
processInstance
.
getState
().
typeIsSuccess
()
?
"success"
:
"failed"
;
alert
.
setTitle
(
cmdName
+
" "
+
success
);
alert
.
setWarningType
(
processInstance
.
getState
().
typeIsSuccess
()
?
WarningType
.
SUCCESS
:
WarningType
.
FAILURE
);
String
content
=
getContentProcessInstance
(
processInstance
,
taskInstances
,
projectUser
);
String
content
=
getContentProcessInstance
(
processInstance
,
taskInstances
,
projectUser
);
alert
.
setContent
(
content
);
alert
.
setAlertGroupId
(
processInstance
.
getWarningGroupId
());
alert
.
setCreateTime
(
new
Date
());
...
...
@@ -270,10 +268,10 @@ public class ProcessAlertManager {
* send process timeout alert
*
* @param processInstance process instance
* @param pro
cessDefinition process definition
* @param pro
jectUser projectUser
*/
public
void
sendProcessTimeoutAlert
(
ProcessInstance
processInstance
,
Pro
cessDefinition
processDefinition
)
{
alertDao
.
sendProcessTimeoutAlert
(
processInstance
,
pro
cessDefinition
);
public
void
sendProcessTimeoutAlert
(
ProcessInstance
processInstance
,
Pro
jectUser
projectUser
)
{
alertDao
.
sendProcessTimeoutAlert
(
processInstance
,
pro
jectUser
);
}
/**
...
...
@@ -359,8 +357,8 @@ public class ProcessAlertManager {
return
JSONUtils
.
toJsonString
(
content
);
}
public
void
sendTaskTimeoutAlert
(
ProcessInstance
processInstance
,
TaskInstance
taskInstance
,
TaskDefinition
taskDefinition
)
{
alertDao
.
sendTaskTimeoutAlert
(
processInstance
,
taskInstance
,
taskDefinition
);
public
void
sendTaskTimeoutAlert
(
ProcessInstance
processInstance
,
TaskInstance
taskInstance
,
ProjectUser
projectUser
)
{
alertDao
.
sendTaskTimeoutAlert
(
processInstance
,
taskInstance
,
projectUser
);
}
/**
...
...
@@ -376,7 +374,7 @@ public class ProcessAlertManager {
String
cmdName
=
getCommandCnName
(
processInstance
.
getCommandType
());
List
<
ProcessAlertContent
>
blockingNodeList
=
new
ArrayList
<>(
1
);
ProcessAlertContent
processAlertContent
=
ProcessAlertContent
.
newBuilder
()
.
project
Id
(
projectUser
.
getProjectId
())
.
project
Code
(
projectUser
.
getProjectCode
())
.
projectName
(
projectUser
.
getProjectName
())
.
owner
(
projectUser
.
getUserName
())
.
processId
(
processInstance
.
getId
())
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录