定时任务调用逻辑修改

This commit is contained in:
2022-02-08 10:20:38 +08:00
parent cba56f6e56
commit 1016ad6751
5 changed files with 37 additions and 15 deletions

View File

@@ -10,10 +10,11 @@ import com.hxuanyu.monitor.common.CheckResult;
* @version 1.0
*/
public abstract class BaseMonitorItem {
private String monitorItemName;
private String cron;
protected String monitorItemName;
protected String cron;
public BaseMonitorItem() {
}
public BaseMonitorItem(String monitorItemName, String cron) {
@@ -21,6 +22,11 @@ public abstract class BaseMonitorItem {
this.cron = cron;
}
public BaseMonitorItem(String cron) {
this.monitorItemName = getClass().getSimpleName();
this.cron = cron;
}
public String getMonitorItemName() {
return monitorItemName;
}

View File

@@ -1,6 +1,7 @@
package com.hxuanyu.monitor.manager;
import com.hxuanyu.common.message.Msg;
import com.hxuanyu.common.spring.SpringContextUtil;
import com.hxuanyu.monitor.annotation.MonitorItem;
import com.hxuanyu.monitor.base.BaseMonitorItem;
import com.hxuanyu.monitor.common.CheckResult;
@@ -78,6 +79,15 @@ public class MonitorItemBeanManager implements ApplicationListener<ContextRefres
return Msg.success("添加成功");
}
public Msg<String> addMonitorTask(String itemName, Class<? extends BaseMonitorItem> clazz, Object... args) {
BaseMonitorItem item = SpringContextUtil.registerBean(itemName, clazz, args);
return addMonitorTask(item);
}
public Msg<String> addMonitorTask(Class<? extends BaseMonitorItem> clazz, Object... args) {
return addMonitorTask(clazz.getSimpleName(), clazz, args);
}
public Msg<String> setMonitorTaskCron(String taskId, String cron) {
if (MONITOR_ITEM_MAP.containsKey(taskId)) {
schedulingConfigurer.cancelTriggerTask(taskId);
@@ -107,7 +117,7 @@ public class MonitorItemBeanManager implements ApplicationListener<ContextRefres
schedulingConfigurer.resetTriggerTask(taskId, new TriggerTask(() -> {
CheckResult checkResult = item.check();
if (checkResult.isTriggered()) {
if (NotifyType.TYPE_CUSTOM.equals(checkResult.getNotifyType())){
if (NotifyType.TYPE_CUSTOM.equals(checkResult.getNotifyType())) {
logger.info("定时任务[{}]触发成功,执行自定义通知", taskId);
notifyService.notify(checkResult.getCustomNotify());
} else {