Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
holmes
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
QA
holmes
Commits
cfd6f8c0
Commit
cfd6f8c0
authored
Jan 10, 2022
by
黎博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改一下编辑接口
parent
125f6b0b
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
37 additions
and
7 deletions
+37
-7
SqlMonitorTaskController.java
...g/holmes/controller/monitor/SqlMonitorTaskController.java
+19
-6
SqlMonitorHandler.java
src/main/java/cn/qg/holmes/quartz/SqlMonitorHandler.java
+1
-1
QuartzUtils.java
src/main/java/cn/qg/holmes/utils/QuartzUtils.java
+17
-0
No files found.
src/main/java/cn/qg/holmes/controller/monitor/SqlMonitorTaskController.java
View file @
cfd6f8c0
...
...
@@ -112,28 +112,41 @@ public class SqlMonitorTaskController {
*/
@PostMapping
(
"/edit"
)
public
JsonResult
editMonitorTask
(
@RequestBody
SqlMonitorTask
sqlMonitorTask
)
{
// 新定时任务名称
String
newTaskName
=
sqlMonitorTask
.
getTaskName
();
QueryWrapper
<
SqlMonitorTask
>
queryWrapper
=
new
QueryWrapper
<>();
queryWrapper
.
eq
(
"task_name"
,
sqlMonitorTask
.
getTaskName
()
);
queryWrapper
.
eq
(
"task_name"
,
newTaskName
);
SqlMonitorTask
sqlMonitorTaskTemp
=
sqlMonitorTaskService
.
getOne
(
queryWrapper
);
SqlMonitorTask
sqlMonitorTaskOld
=
sqlMonitorTaskService
.
getById
(
sqlMonitorTask
.
getId
());
// 老定时任务名称
String
oldTaskName
=
sqlMonitorTaskOld
.
getTaskName
();
if
(
sqlMonitorTaskTemp
!=
null
&&
!
sqlMonitorTaskTemp
.
getId
().
equals
(
sqlMonitorTask
.
getId
()))
{
return
JsonResult
.
buildErrorStateResult
(
"监控名称重复"
,
false
);
}
boolean
updateResult
=
sqlMonitorTaskService
.
updateById
(
sqlMonitorTask
);
if
(
updateResult
)
{
// 如果监控名称发生了改变,删除原有监控,使用新名称来创建监控
if
(!
newTaskName
.
equals
(
oldTaskName
))
{
// 删除老的监控
if
(
QuartzUtils
.
queryJobExistence
(
scheduler
,
oldTaskName
))
{
QuartzUtils
.
deleteScheduleJob
(
scheduler
,
oldTaskName
);
}
// 创建新监控
QuartzUtils
.
createSqlScheduleJob
(
scheduler
,
sqlMonitorTask
);
}
// 如果状态发生了变更,则根据改变之后的状态来决定是暂停任务还是重启任务
if
(!
sqlMonitorTask
.
getStatus
().
equals
(
sqlMonitorTaskOld
.
getStatus
()))
{
// 如果变更后的状态为0
if
(
sqlMonitorTask
.
getStatus
()
==
0
)
{
QuartzUtils
.
pauseScheduleJob
(
scheduler
,
sqlMonitorTask
.
getTaskName
()
);
QuartzUtils
.
pauseScheduleJob
(
scheduler
,
newTaskName
);
}
// 如果变更后的状态为1
if
(
sqlMonitorTask
.
getStatus
()
==
1
)
{
QuartzUtils
.
resumeScheduleJob
(
scheduler
,
sqlMonitorTask
.
getTaskName
()
);
QuartzUtils
.
resumeScheduleJob
(
scheduler
,
newTaskName
);
}
}
// 如果
报警频率发生变更,且定时任务状态为启用
if
(
!
sqlMonitorTask
.
getTaskCron
().
equals
(
sqlMonitorTaskOld
.
getTaskCron
())
&&
sqlMonitorTask
.
getStatus
()
==
1
)
{
// 如果
项目存在,则更新一下
if
(
QuartzUtils
.
queryJobExistence
(
scheduler
,
newTaskName
)
)
{
QuartzUtils
.
updateSqlScheduleJob
(
scheduler
,
sqlMonitorTask
);
}
return
JsonResult
.
buildSuccessResult
(
"监控修改成功!"
);
...
...
@@ -216,7 +229,7 @@ public class SqlMonitorTaskController {
}
List
<
Map
<
String
,
Object
>>
resultList
=
JdbcUtils
.
queryForList
(
sqlMonitorDataSource
.
getHost
(),
sqlMonitorDataSource
.
getPort
(),
sqlMonitorDataSource
.
getUsername
(),
sqlMonitorDataSource
.
getPassword
(),
null
,
sqlMonitorTask
.
getSql
());
String
dingUrl
=
sqlMonitorTask
.
getDingUrl
();
String
dingUrl
=
sqlMonitorTask
.
getDingUrl
()
.
trim
()
;
String
dingText
=
sqlMonitorTask
.
getDingText
();
if
(
resultList
!=
null
)
{
dingText
=
SqlMonitorHandler
.
replaceDingText
(
dingText
,
resultList
);
...
...
src/main/java/cn/qg/holmes/quartz/SqlMonitorHandler.java
View file @
cfd6f8c0
...
...
@@ -51,7 +51,7 @@ public class SqlMonitorHandler extends QuartzJobBean {
List
<
Map
<
String
,
Object
>>
resultList
=
JdbcUtils
.
queryForList
(
sqlMonitorDataSource
.
getHost
(),
sqlMonitorDataSource
.
getPort
(),
sqlMonitorDataSource
.
getUsername
(),
sqlMonitorDataSource
.
getPassword
(),
null
,
sqlMonitorTask
.
getSql
());
String
dingUrl
=
sqlMonitorTask
.
getDingUrl
();
String
dingUrl
=
sqlMonitorTask
.
getDingUrl
()
.
trim
()
;
String
dingText
=
sqlMonitorTask
.
getDingText
();
if
(
resultList
!=
null
)
{
dingText
=
replaceDingText
(
dingText
,
resultList
);
...
...
src/main/java/cn/qg/holmes/utils/QuartzUtils.java
View file @
cfd6f8c0
...
...
@@ -122,4 +122,21 @@ public class QuartzUtils {
log
.
info
(
"删除定时任务出错:"
+
e
.
getMessage
());
}
}
/**
* 查询job是否存在
* @param scheduler 调度器
* @param jobName job名称
* @return
*/
public
static
boolean
queryJobExistence
(
Scheduler
scheduler
,
String
jobName
)
{
JobKey
jobKey
=
JobKey
.
jobKey
(
jobName
);
try
{
JobDetail
jobDetail
=
scheduler
.
getJobDetail
(
jobKey
);
return
jobDetail
!=
null
;
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
false
;
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment