Commit 0b6b9a2f authored by 黎博's avatar 黎博

修改表名及接口url

parent c2145f1f
package cn.qg.holmes.config; package cn.qg.holmes.config;
import cn.qg.holmes.entity.monitor.MonitorTask; import cn.qg.holmes.entity.monitor.SqlMonitorTask;
import cn.qg.holmes.service.monitor.MonitorTaskService; import cn.qg.holmes.service.monitor.SqlMonitorTaskService;
import cn.qg.holmes.utils.QuartzUtils; import cn.qg.holmes.utils.QuartzUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.quartz.Scheduler; import org.quartz.Scheduler;
...@@ -22,17 +22,17 @@ import java.util.List; ...@@ -22,17 +22,17 @@ import java.util.List;
public class QuartzInitRunner implements ApplicationRunner { public class QuartzInitRunner implements ApplicationRunner {
@Autowired @Autowired
MonitorTaskService monitorTaskService; SqlMonitorTaskService sqlMonitorTaskService;
@Autowired @Autowired
private Scheduler scheduler; private Scheduler scheduler;
@Override @Override
public void run(ApplicationArguments args) { public void run(ApplicationArguments args) {
List<MonitorTask> monitorTaskList = monitorTaskService.list(); List<SqlMonitorTask> sqlMonitorTaskList = sqlMonitorTaskService.list();
for (MonitorTask monitorTask: monitorTaskList) { for (SqlMonitorTask sqlMonitorTask : sqlMonitorTaskList) {
if (monitorTask.getStatus() == 1) { if (sqlMonitorTask.getStatus() == 1) {
QuartzUtils.createScheduleJob(scheduler, monitorTask); QuartzUtils.createSqlScheduleJob(scheduler, sqlMonitorTask);
} }
} }
} }
......
package cn.qg.holmes.controller.monitor; package cn.qg.holmes.controller.monitor;
import cn.qg.holmes.common.JsonResult; import cn.qg.holmes.common.JsonResult;
import cn.qg.holmes.entity.monitor.MonitorDataSource; import cn.qg.holmes.entity.monitor.SqlMonitorDataSource;
import cn.qg.holmes.service.monitor.MonitorDataSourceService; import cn.qg.holmes.service.monitor.SqlMonitorDataSourceService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
...@@ -19,10 +19,10 @@ import java.util.Map; ...@@ -19,10 +19,10 @@ import java.util.Map;
@CrossOrigin @CrossOrigin
@RestController @RestController
@RequestMapping("/monitor/ds") @RequestMapping("/monitor/ds")
public class MonitorDataSourceController { public class SqlMonitorDataSourceController {
@Autowired @Autowired
MonitorDataSourceService monitorDataSourceService; SqlMonitorDataSourceService sqlMonitorDataSourceService;
/** /**
* 获取监控数据源列表,带分页和筛选 * 获取监控数据源列表,带分页和筛选
...@@ -35,12 +35,12 @@ public class MonitorDataSourceController { ...@@ -35,12 +35,12 @@ public class MonitorDataSourceController {
public JsonResult getMonitorDataSourceListWithPaging(@RequestParam(defaultValue = "1") Integer pageNum, public JsonResult getMonitorDataSourceListWithPaging(@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize, @RequestParam(defaultValue = "10") Integer pageSize,
String dsName) { String dsName) {
IPage<MonitorDataSource> IPageParam = new Page<>(pageNum, pageSize); IPage<SqlMonitorDataSource> IPageParam = new Page<>(pageNum, pageSize);
QueryWrapper<MonitorDataSource> queryWrapper = new QueryWrapper<>(); QueryWrapper<SqlMonitorDataSource> queryWrapper = new QueryWrapper<>();
if (!StringUtils.isEmpty(dsName)) { if (!StringUtils.isEmpty(dsName)) {
queryWrapper.eq("name", dsName); queryWrapper.eq("name", dsName);
} }
IPage<MonitorDataSource> IPageResult = monitorDataSourceService.page(IPageParam); IPage<SqlMonitorDataSource> IPageResult = sqlMonitorDataSourceService.page(IPageParam);
Map<String, Object> dsResult = new HashMap<>(); Map<String, Object> dsResult = new HashMap<>();
dsResult.put("total", IPageResult.getTotal()); dsResult.put("total", IPageResult.getTotal());
dsResult.put("list", IPageResult.getRecords()); dsResult.put("list", IPageResult.getRecords());
...@@ -53,50 +53,50 @@ public class MonitorDataSourceController { ...@@ -53,50 +53,50 @@ public class MonitorDataSourceController {
*/ */
@GetMapping("/list") @GetMapping("/list")
public JsonResult getMonitorDataSourceList() { public JsonResult getMonitorDataSourceList() {
return JsonResult.buildSuccessResult(monitorDataSourceService.list()); return JsonResult.buildSuccessResult(sqlMonitorDataSourceService.list());
} }
/** /**
* 添加监控数据源 * 添加监控数据源
* @param monitorDataSource * @param sqlMonitorDataSource
* @return * @return
*/ */
@PostMapping("/add") @PostMapping("/add")
public JsonResult addMonitorDataSource(@RequestBody MonitorDataSource monitorDataSource) { public JsonResult addMonitorDataSource(@RequestBody SqlMonitorDataSource sqlMonitorDataSource) {
return JsonResult.buildSuccessResult(monitorDataSourceService.saveOrUpdate(monitorDataSource)); return JsonResult.buildSuccessResult(sqlMonitorDataSourceService.saveOrUpdate(sqlMonitorDataSource));
} }
/** /**
* 更新监控数据源 * 更新监控数据源
* @param monitorDataSource * @param sqlMonitorDataSource
* @return * @return
*/ */
@PostMapping("/update") @PostMapping("/update")
public JsonResult updateMonitorDataSource(@RequestBody MonitorDataSource monitorDataSource) { public JsonResult updateMonitorDataSource(@RequestBody SqlMonitorDataSource sqlMonitorDataSource) {
Integer dsId = monitorDataSource.getId(); Integer dsId = sqlMonitorDataSource.getId();
if (dsId == null) { if (dsId == null) {
return JsonResult.buildErrorStateResult("数据源不存在!", null); return JsonResult.buildErrorStateResult("数据源不存在!", null);
} }
if (monitorDataSourceService.getById(dsId) == null) { if (sqlMonitorDataSourceService.getById(dsId) == null) {
return JsonResult.buildErrorStateResult("数据源不存在", null); return JsonResult.buildErrorStateResult("数据源不存在", null);
} }
return JsonResult.buildSuccessResult(monitorDataSourceService.saveOrUpdate(monitorDataSource)); return JsonResult.buildSuccessResult(sqlMonitorDataSourceService.saveOrUpdate(sqlMonitorDataSource));
} }
/** /**
* 删除监控数据源 * 删除监控数据源
* @param monitorDataSource * @param sqlMonitorDataSource
* @return * @return
*/ */
@PostMapping("/delete") @PostMapping("/delete")
public JsonResult deleteMonitorDataSource(@RequestBody MonitorDataSource monitorDataSource) { public JsonResult deleteMonitorDataSource(@RequestBody SqlMonitorDataSource sqlMonitorDataSource) {
Integer dsId = monitorDataSource.getId(); Integer dsId = sqlMonitorDataSource.getId();
if (dsId == null) { if (dsId == null) {
return JsonResult.buildErrorStateResult("数据源不存在!", null); return JsonResult.buildErrorStateResult("数据源不存在!", null);
} }
if (monitorDataSourceService.getById(dsId) == null) { if (sqlMonitorDataSourceService.getById(dsId) == null) {
return JsonResult.buildErrorStateResult("数据源不存在", null); return JsonResult.buildErrorStateResult("数据源不存在", null);
} }
return JsonResult.buildSuccessResult(monitorDataSourceService.getById(dsId)); return JsonResult.buildSuccessResult(sqlMonitorDataSourceService.getById(dsId));
} }
} }
package cn.qg.holmes.controller.monitor; package cn.qg.holmes.controller.monitor;
import cn.qg.holmes.common.JsonResult; import cn.qg.holmes.common.JsonResult;
import cn.qg.holmes.entity.monitor.MonitorDataSource; import cn.qg.holmes.entity.monitor.SqlMonitorDataSource;
import cn.qg.holmes.entity.monitor.MonitorTask; import cn.qg.holmes.entity.monitor.SqlMonitorTask;
import cn.qg.holmes.service.monitor.MonitorDataSourceService; import cn.qg.holmes.service.monitor.SqlMonitorDataSourceService;
import cn.qg.holmes.service.monitor.MonitorTaskService; import cn.qg.holmes.service.monitor.SqlMonitorTaskService;
import cn.qg.holmes.utils.DingdingUtils; import cn.qg.holmes.utils.DingdingUtils;
import cn.qg.holmes.utils.JdbcUtils; import cn.qg.holmes.utils.JdbcUtils;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
...@@ -25,14 +25,14 @@ import java.util.Map; ...@@ -25,14 +25,14 @@ import java.util.Map;
*/ */
@CrossOrigin @CrossOrigin
@RestController @RestController
@RequestMapping("/monitor/task") @RequestMapping("/sql/monitor")
public class MonitorTaskController { public class SqlMonitorTaskController {
@Autowired @Autowired
MonitorTaskService monitorTaskService; SqlMonitorTaskService sqlMonitorTaskService;
@Autowired @Autowired
MonitorDataSourceService monitorDataSourceService; SqlMonitorDataSourceService sqlMonitorDataSourceService;
@Autowired @Autowired
JdbcTemplate jdbcTemplate; JdbcTemplate jdbcTemplate;
...@@ -50,7 +50,7 @@ public class MonitorTaskController { ...@@ -50,7 +50,7 @@ public class MonitorTaskController {
@RequestParam(defaultValue = "10") Integer pageSize, @RequestParam(defaultValue = "10") Integer pageSize,
@RequestParam String serviceName, @RequestParam String serviceName,
@RequestParam String taskName) { @RequestParam String taskName) {
QueryWrapper<MonitorTask> queryWrapper = new QueryWrapper<>(); QueryWrapper<SqlMonitorTask> queryWrapper = new QueryWrapper<>();
if (!StringUtils.isEmpty(serviceName)) { if (!StringUtils.isEmpty(serviceName)) {
queryWrapper.eq("service_name", serviceName); queryWrapper.eq("service_name", serviceName);
} }
...@@ -58,14 +58,14 @@ public class MonitorTaskController { ...@@ -58,14 +58,14 @@ public class MonitorTaskController {
queryWrapper.eq("task_name", taskName); queryWrapper.eq("task_name", taskName);
} }
queryWrapper.orderByDesc("id"); queryWrapper.orderByDesc("id");
IPage<MonitorTask> pageParam = new Page<>(pageNum, pageSize); IPage<SqlMonitorTask> pageParam = new Page<>(pageNum, pageSize);
IPage<MonitorTask> monitorTaskIPage = monitorTaskService.page(pageParam, queryWrapper); IPage<SqlMonitorTask> monitorTaskIPage = sqlMonitorTaskService.page(pageParam, queryWrapper);
List<MonitorTask> monitorTaskList = monitorTaskIPage.getRecords(); List<SqlMonitorTask> sqlMonitorTaskList = monitorTaskIPage.getRecords();
for (MonitorTask monitorTask: monitorTaskList) { for (SqlMonitorTask sqlMonitorTask : sqlMonitorTaskList) {
monitorTask.setDsName(monitorDataSourceService.getById(monitorTask.getDsId()).getName()); sqlMonitorTask.setDsName(sqlMonitorDataSourceService.getById(sqlMonitorTask.getDsId()).getName());
} }
Map<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
resultMap.put("list", monitorTaskList); resultMap.put("list", sqlMonitorTaskList);
resultMap.put("total", monitorTaskIPage.getTotal()); resultMap.put("total", monitorTaskIPage.getTotal());
return JsonResult.buildSuccessResult(resultMap); return JsonResult.buildSuccessResult(resultMap);
} }
...@@ -73,38 +73,38 @@ public class MonitorTaskController { ...@@ -73,38 +73,38 @@ public class MonitorTaskController {
/** /**
* 新增监控 * 新增监控
* *
* @param monitorTask * @param sqlMonitorTask
* @return * @return
*/ */
@PostMapping("/add") @PostMapping("/add")
public JsonResult addMonitorTask(@RequestBody MonitorTask monitorTask) { public JsonResult addMonitorTask(@RequestBody SqlMonitorTask sqlMonitorTask) {
return JsonResult.buildSuccessResult(monitorTaskService.save(monitorTask)); return JsonResult.buildSuccessResult(sqlMonitorTaskService.save(sqlMonitorTask));
} }
/** /**
* 修改监控 * 修改监控
* *
* @param monitorTask * @param sqlMonitorTask
* @return * @return
*/ */
@PostMapping("/edit") @PostMapping("/edit")
public JsonResult editMonitorTask(@RequestBody MonitorTask monitorTask) { public JsonResult editMonitorTask(@RequestBody SqlMonitorTask sqlMonitorTask) {
return JsonResult.buildSuccessResult(monitorTaskService.saveOrUpdate(monitorTask)); return JsonResult.buildSuccessResult(sqlMonitorTaskService.saveOrUpdate(sqlMonitorTask));
} }
/** /**
* 删除监控 * 删除监控
* *
* @param monitorTask * @param sqlMonitorTask
* @return * @return
*/ */
@PostMapping("/delete") @PostMapping("/delete")
public JsonResult deleteMonitorTask(@RequestBody MonitorTask monitorTask) { public JsonResult deleteMonitorTask(@RequestBody SqlMonitorTask sqlMonitorTask) {
Integer taskId = monitorTask.getId(); Integer taskId = sqlMonitorTask.getId();
if (monitorTaskService.getById(taskId) == null) { if (sqlMonitorTaskService.getById(taskId) == null) {
return JsonResult.buildErrorStateResult("定时任务不存在!", false); return JsonResult.buildErrorStateResult("定时任务不存在!", false);
} }
boolean delResult = monitorTaskService.removeById(taskId); boolean delResult = sqlMonitorTaskService.removeById(taskId);
if (delResult) { if (delResult) {
return JsonResult.buildSuccessResult("删除成功!"); return JsonResult.buildSuccessResult("删除成功!");
} else { } else {
...@@ -121,27 +121,27 @@ public class MonitorTaskController { ...@@ -121,27 +121,27 @@ public class MonitorTaskController {
*/ */
@PostMapping("/execute") @PostMapping("/execute")
public JsonResult executeSql(@RequestParam Integer dsId, @RequestParam String sql) { public JsonResult executeSql(@RequestParam Integer dsId, @RequestParam String sql) {
MonitorDataSource monitorDataSource = monitorDataSourceService.getById(dsId); SqlMonitorDataSource sqlMonitorDataSource = sqlMonitorDataSourceService.getById(dsId);
List<Map<String, Object>> resultList = JdbcUtils.queryForList(monitorDataSource.getHost(), monitorDataSource.getPort(), monitorDataSource.getUsername(), List<Map<String, Object>> resultList = JdbcUtils.queryForList(sqlMonitorDataSource.getHost(), sqlMonitorDataSource.getPort(), sqlMonitorDataSource.getUsername(),
monitorDataSource.getPassword(), null, sql); sqlMonitorDataSource.getPassword(), null, sql);
return JsonResult.buildSuccessResult(resultList); return JsonResult.buildSuccessResult(resultList);
} }
/** /**
* 发送测试,立即测试下定时任务发送消息是否准确 * 发送测试,立即测试下定时任务发送消息是否准确
* *
* @param monitorTask 监控任务 * @param sqlMonitorTask 监控任务
* @return * @return
*/ */
@PostMapping("/test") @PostMapping("/test")
public JsonResult testMonitorTask(@RequestBody MonitorTask monitorTask) { public JsonResult testMonitorTask(@RequestBody SqlMonitorTask sqlMonitorTask) {
try { try {
Integer dsId = monitorTask.getDsId(); Integer dsId = sqlMonitorTask.getDsId();
MonitorDataSource monitorDataSource = monitorDataSourceService.getById(dsId); SqlMonitorDataSource sqlMonitorDataSource = sqlMonitorDataSourceService.getById(dsId);
List<Map<String, Object>> resultList = JdbcUtils.queryForList(monitorDataSource.getHost(), monitorDataSource.getPort(), List<Map<String, Object>> resultList = JdbcUtils.queryForList(sqlMonitorDataSource.getHost(), sqlMonitorDataSource.getPort(),
monitorDataSource.getUsername(), monitorDataSource.getPassword(), null, monitorTask.getSql()); sqlMonitorDataSource.getUsername(), sqlMonitorDataSource.getPassword(), null, sqlMonitorTask.getSql());
String dingUrl = monitorTask.getDingUrl(); String dingUrl = sqlMonitorTask.getDingUrl();
String dingText = monitorTask.getDingText(); String dingText = sqlMonitorTask.getDingText();
dingText = dingText.replaceAll("\\{count}", String.valueOf(resultList.size())); dingText = dingText.replaceAll("\\{count}", String.valueOf(resultList.size()));
String markdownMsg = DingdingUtils.buildMarkdownMsg("监控测试", dingText + "\n" + JSON.toJSONString(resultList), false); String markdownMsg = DingdingUtils.buildMarkdownMsg("监控测试", dingText + "\n" + JSON.toJSONString(resultList), false);
boolean result = DingdingUtils.sendToDingding(markdownMsg, dingUrl); boolean result = DingdingUtils.sendToDingding(markdownMsg, dingUrl);
......
...@@ -14,8 +14,8 @@ import java.util.Date; ...@@ -14,8 +14,8 @@ import java.util.Date;
* @author libo * @author libo
*/ */
@Data @Data
@TableName(value = "monitor_data_source") @TableName(value = "sql_monitor_data_source")
public class MonitorDataSource { public class SqlMonitorDataSource {
@TableId(type = IdType.AUTO) @TableId(type = IdType.AUTO)
private Integer id; private Integer id;
......
...@@ -16,8 +16,8 @@ import java.util.Date; ...@@ -16,8 +16,8 @@ import java.util.Date;
* @author libo * @author libo
*/ */
@Data @Data
@TableName(value = "monitor_task") @TableName(value = "sql_monitor_task")
public class MonitorTask { public class SqlMonitorTask {
@TableId(type = IdType.AUTO) @TableId(type = IdType.AUTO)
private Integer id; private Integer id;
......
package cn.qg.holmes.mapper.monitor; package cn.qg.holmes.mapper.monitor;
import cn.qg.holmes.entity.monitor.MonitorDataSource; import cn.qg.holmes.entity.monitor.SqlMonitorDataSource;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface MonitorDataSourceMapper extends BaseMapper<MonitorDataSource> { public interface SqlMonitorDataSourceMapper extends BaseMapper<SqlMonitorDataSource> {
} }
package cn.qg.holmes.mapper.monitor; package cn.qg.holmes.mapper.monitor;
import cn.qg.holmes.entity.monitor.MonitorTask; import cn.qg.holmes.entity.monitor.SqlMonitorTask;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface MonitorTaskMapper extends BaseMapper<MonitorTask> { public interface SqlMonitorTaskMapper extends BaseMapper<SqlMonitorTask> {
} }
package cn.qg.holmes.quartz; package cn.qg.holmes.quartz;
import cn.qg.holmes.entity.monitor.MonitorDataSource; import cn.qg.holmes.entity.monitor.SqlMonitorDataSource;
import cn.qg.holmes.entity.monitor.MonitorTask; import cn.qg.holmes.service.monitor.SqlMonitorDataSourceService;
import cn.qg.holmes.service.monitor.MonitorDataSourceService; import cn.qg.holmes.service.monitor.SqlMonitorTaskService;
import cn.qg.holmes.service.monitor.MonitorTaskService;
import cn.qg.holmes.utils.DingdingUtils; import cn.qg.holmes.utils.DingdingUtils;
import cn.qg.holmes.utils.JdbcUtils; import cn.qg.holmes.utils.JdbcUtils;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
...@@ -27,10 +26,10 @@ import java.util.regex.Pattern; ...@@ -27,10 +26,10 @@ import java.util.regex.Pattern;
public class SqlMonitorTask extends QuartzJobBean { public class SqlMonitorTask extends QuartzJobBean {
@Autowired @Autowired
MonitorDataSourceService monitorDataSourceService; SqlMonitorDataSourceService sqlMonitorDataSourceService;
@Autowired @Autowired
MonitorTaskService monitorTaskService; SqlMonitorTaskService sqlMonitorTaskService;
@Override @Override
protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException { protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
...@@ -38,17 +37,17 @@ public class SqlMonitorTask extends QuartzJobBean { ...@@ -38,17 +37,17 @@ public class SqlMonitorTask extends QuartzJobBean {
// 定时任务名称 // 定时任务名称
String taskName = jobDetail.getKey().getName(); String taskName = jobDetail.getKey().getName();
// 获取定时任务信息 // 获取定时任务信息
QueryWrapper<MonitorTask> monitorTaskQueryWrapper = new QueryWrapper<>(); QueryWrapper<cn.qg.holmes.entity.monitor.SqlMonitorTask> monitorTaskQueryWrapper = new QueryWrapper<>();
monitorTaskQueryWrapper.eq("task_name", taskName); monitorTaskQueryWrapper.eq("task_name", taskName);
MonitorTask monitorTask = monitorTaskService.getOne(monitorTaskQueryWrapper); cn.qg.holmes.entity.monitor.SqlMonitorTask sqlMonitorTask = sqlMonitorTaskService.getOne(monitorTaskQueryWrapper);
// 获取数据源相关信息 // 获取数据源相关信息
Integer dsId = monitorTask.getDsId(); Integer dsId = sqlMonitorTask.getDsId();
MonitorDataSource monitorDataSource = monitorDataSourceService.getById(dsId); SqlMonitorDataSource sqlMonitorDataSource = sqlMonitorDataSourceService.getById(dsId);
List<Map<String, Object>> resultList = JdbcUtils.queryForList(monitorDataSource.getHost(), monitorDataSource.getPort(), List<Map<String, Object>> resultList = JdbcUtils.queryForList(sqlMonitorDataSource.getHost(), sqlMonitorDataSource.getPort(),
monitorDataSource.getUsername(), monitorDataSource.getPassword(), null, monitorTask.getSql()); sqlMonitorDataSource.getUsername(), sqlMonitorDataSource.getPassword(), null, sqlMonitorTask.getSql());
String dingUrl = monitorTask.getDingUrl(); String dingUrl = sqlMonitorTask.getDingUrl();
String dingText = monitorTask.getDingText(); String dingText = sqlMonitorTask.getDingText();
dingText = replaceDingText(dingText, resultList); dingText = replaceDingText(dingText, resultList);
String markdownMsg = DingdingUtils.buildMarkdownMsg("监控测试", dingText + "\n" + JSON.toJSONString(resultList), false); String markdownMsg = DingdingUtils.buildMarkdownMsg("监控测试", dingText + "\n" + JSON.toJSONString(resultList), false);
DingdingUtils.sendToDingding(markdownMsg, dingUrl); DingdingUtils.sendToDingding(markdownMsg, dingUrl);
......
package cn.qg.holmes.service.monitor;
/**
* 监控Service
*/
public interface MonitorService {
}
package cn.qg.holmes.service.monitor; package cn.qg.holmes.service.monitor;
import cn.qg.holmes.entity.monitor.MonitorDataSource; import cn.qg.holmes.entity.monitor.SqlMonitorDataSource;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
/** /**
* 监控数据源Service * 监控数据源Service
*/ */
public interface MonitorDataSourceService extends IService<MonitorDataSource> { public interface SqlMonitorDataSourceService extends IService<SqlMonitorDataSource> {
} }
package cn.qg.holmes.service.monitor; package cn.qg.holmes.service.monitor;
import cn.qg.holmes.entity.monitor.MonitorTask; import cn.qg.holmes.entity.monitor.SqlMonitorTask;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
public interface MonitorTaskService extends IService<MonitorTask> { public interface SqlMonitorTaskService extends IService<SqlMonitorTask> {
} }
package cn.qg.holmes.service.monitor.impl;
import cn.qg.holmes.service.monitor.MonitorService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service
public class MonitorServiceImpl implements MonitorService {
}
package cn.qg.holmes.service.monitor.impl; package cn.qg.holmes.service.monitor.impl;
import cn.qg.holmes.entity.monitor.MonitorDataSource; import cn.qg.holmes.entity.monitor.SqlMonitorDataSource;
import cn.qg.holmes.mapper.monitor.MonitorDataSourceMapper; import cn.qg.holmes.mapper.monitor.SqlMonitorDataSourceMapper;
import cn.qg.holmes.service.monitor.MonitorDataSourceService; import cn.qg.holmes.service.monitor.SqlMonitorDataSourceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service @Service
public class MonitorDataSourceServiceImpl extends ServiceImpl<MonitorDataSourceMapper, MonitorDataSource> public class SqlMonitorDataSourceServiceImpl extends ServiceImpl<SqlMonitorDataSourceMapper, SqlMonitorDataSource>
implements MonitorDataSourceService { implements SqlMonitorDataSourceService {
} }
package cn.qg.holmes.service.monitor.impl; package cn.qg.holmes.service.monitor.impl;
import cn.qg.holmes.entity.monitor.MonitorTask; import cn.qg.holmes.entity.monitor.SqlMonitorTask;
import cn.qg.holmes.mapper.monitor.MonitorTaskMapper; import cn.qg.holmes.mapper.monitor.SqlMonitorTaskMapper;
import cn.qg.holmes.service.monitor.MonitorTaskService; import cn.qg.holmes.service.monitor.SqlMonitorTaskService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service @Service
public class MonitorTaskServiceImpl extends ServiceImpl<MonitorTaskMapper, MonitorTask> implements MonitorTaskService { public class SqlMonitorTaskServiceImpl extends ServiceImpl<SqlMonitorTaskMapper, SqlMonitorTask> implements SqlMonitorTaskService {
} }
package cn.qg.holmes.utils; package cn.qg.holmes.utils;
import cn.qg.holmes.entity.monitor.MonitorTask; import cn.qg.holmes.entity.monitor.SqlMonitorTask;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.quartz.*; import org.quartz.*;
@Slf4j @Slf4j
public class QuartzUtils { public class QuartzUtils {
public static void createScheduleJob(Scheduler scheduler, MonitorTask monitorTask) { public static void createSqlScheduleJob(Scheduler scheduler, SqlMonitorTask sqlMonitorTask) {
try { try {
Class<? extends Job> jobClass = (Class<? extends Job>) Class.forName("cn.qg.holmes.quartz." + monitorTask.getTaskClass()); Class<? extends Job> jobClass = (Class<? extends Job>) Class.forName("cn.qg.holmes.quartz." + sqlMonitorTask.getTaskClass());
JobDetail jobDetail = JobBuilder JobDetail jobDetail = JobBuilder
.newJob(jobClass) .newJob(jobClass)
.withIdentity(monitorTask.getTaskName()) .withIdentity(sqlMonitorTask.getTaskName())
.build(); .build();
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(monitorTask.getTaskCron()); CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(sqlMonitorTask.getTaskCron());
CronTrigger cronTrigger = TriggerBuilder CronTrigger cronTrigger = TriggerBuilder
.newTrigger() .newTrigger()
.withIdentity(monitorTask.getTaskName()) .withIdentity(sqlMonitorTask.getTaskName())
.withSchedule(scheduleBuilder) .withSchedule(scheduleBuilder)
.build(); .build();
scheduler.scheduleJob(jobDetail, cronTrigger); scheduler.scheduleJob(jobDetail, cronTrigger);
} catch (ClassNotFoundException e) { } catch (ClassNotFoundException e) {
log.info("定时任务类: {}路径出错:请输入类的绝对路径", monitorTask.getTaskClass()); log.info("定时任务类: {}路径出错:请输入类的绝对路径", sqlMonitorTask.getTaskClass());
} catch (SchedulerException e) { } catch (SchedulerException e) {
log.info("创建定时任务出错:" + e.getMessage()); log.info("创建定时任务出错:" + e.getMessage());
} }
log.info("创建定时任务: {}", monitorTask.getTaskName()); log.info("创建定时任务: {}", sqlMonitorTask.getTaskName());
} }
/** /**
...@@ -78,15 +78,15 @@ public class QuartzUtils { ...@@ -78,15 +78,15 @@ public class QuartzUtils {
* 更新定时任务 * 更新定时任务
* *
* @param scheduler 调度器 * @param scheduler 调度器
* @param monitorTask 定时任务信息类 * @param sqlMonitorTask 定时任务信息类
* @throws SchedulerException * @throws SchedulerException
*/ */
public static void updateScheduleJob(Scheduler scheduler, MonitorTask monitorTask) { public static void updateSqlScheduleJob(Scheduler scheduler, SqlMonitorTask sqlMonitorTask) {
try { try {
//获取到对应任务的触发器 //获取到对应任务的触发器
TriggerKey triggerKey = TriggerKey.triggerKey(monitorTask.getTaskName()); TriggerKey triggerKey = TriggerKey.triggerKey(sqlMonitorTask.getTaskName());
//设置定时任务执行方式 //设置定时任务执行方式
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(monitorTask.getTaskCron()); CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(sqlMonitorTask.getTaskCron());
//重新构建任务的触发器trigger //重新构建任务的触发器trigger
CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey); CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey);
trigger = trigger trigger = trigger
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment