Skip to content

Commit

Permalink
feat task执行底层提交(未完工),增加日志样式处理器,可以自定义多种处理器并在不同的推送种类中应用
Browse files Browse the repository at this point in the history
  • Loading branch information
wyt1215819315 committed Oct 18, 2023
1 parent dbaa0d4 commit 4ea4ca8
Show file tree
Hide file tree
Showing 43 changed files with 774 additions and 265 deletions.
5 changes: 3 additions & 2 deletions src/main/java/com/github/push/PushUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import com.github.push.base.service.PushMainService;
import com.github.system.base.entity.SysWebhook;
import com.github.system.service.WebhookService;
import com.github.task.base.dto.TaskLog;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

Expand All @@ -25,7 +26,7 @@ public static PushResultDto doPush(PushData<?> pushData) {
return pushMainService.doPush(pushData);
}

public static <T extends PushBaseConfig> void doPush(Integer userId,Long logId, String title, String content) {
public static <T extends PushBaseConfig> void doPush(Integer userId,Long logId, String title, TaskLog taskLog) {
List<SysWebhook> userWebhook = webhookService.getUserWebhook(userId);
if (!userWebhook.isEmpty()) {
userWebhook.forEach(w -> {
Expand All @@ -35,7 +36,7 @@ public static <T extends PushBaseConfig> void doPush(Integer userId,Long logId,
}
PushData<T> pushData = new PushData<>();
pushData.setTitle(title);
pushData.setContent(content);
pushData.setTaskLog(taskLog);
pushData.setLogId(logId);
pushData.setUserId(userId);
pushData.setConfig((T) JSONUtil.toBean(w.getData(),aClass));
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/com/github/push/base/init/PushInit.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import com.github.push.base.dto.PushConfigOptions;
import com.github.push.base.model.PushBaseConfig;
import com.github.push.base.service.PushService;
import com.github.system.base.constant.SystemConstant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
Expand Down Expand Up @@ -39,8 +40,8 @@ public void run(String... args) throws Exception {
// String packageName = this.getClass().getPackageName();
// // 获取所有推送实体类
// Set<Class<?>> classes = ClassUtil.scanPackageBySuper(StrUtil.subBefore(packageName, ".", true) + ".model.impl", PushBaseConfig.class);
Set<Class<?>> classes = ClassUtil.scanPackageBySuper("com.github.push", PushBaseConfig.class);
Set<Class<?>> pushServiceClasses = ClassUtil.scanPackageBySuper("com.github.push", PushService.class);
Set<Class<?>> classes = ClassUtil.scanPackageBySuper(SystemConstant.BASE_PACKAGE + ".push", PushBaseConfig.class);
Set<Class<?>> pushServiceClasses = ClassUtil.scanPackageBySuper(SystemConstant.BASE_PACKAGE + ".push", PushService.class);
for (Class<?> aClass : classes) {
PushEntity apiModelAnno = AnnotationUtil.getAnnotation(aClass, PushEntity.class);
if (apiModelAnno != null) {
Expand Down
17 changes: 16 additions & 1 deletion src/main/java/com/github/push/base/model/PushData.java
Original file line number Diff line number Diff line change
@@ -1,14 +1,29 @@
package com.github.push.base.model;

import com.github.task.base.dto.TaskLog;
import com.github.task.base.service.TaskLogDisplayHandler;
import lombok.Data;

import static com.github.task.base.init.TaskInit.taskLogHandlerClassesMap;

@Data
public class PushData<T extends PushBaseConfig> {

private Integer userId;
private Long logId;
private String content;
private TaskLog taskLog;
private String title;
private T config;

public Object getContent(String handlerName) {
TaskLogDisplayHandler taskLogDisplayHandler = taskLogHandlerClassesMap.get(handlerName);
if (taskLogDisplayHandler == null) {
taskLogDisplayHandler = taskLogHandlerClassesMap.get("TXT");
}
return taskLogDisplayHandler.handle(this.taskLog);
}

public String getContent() {
return (String) getContent("TXT");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public void doPushAsync(PushData pushData) {
// 记录日志
if (pushData.getLogId() != null) {
PushResultLog pushResultLog = new PushResultLog();
pushResultLog.setLogId(pushData.getLogId());
pushResultLog.setTaskId(pushData.getLogId());
pushResultLog.setSuccess(pushResultDto.isSuccess() ? 1 : 0);
pushResultLog.setUserId(pushData.getUserId());
pushResultLog.setData(pushResultDto.getData());
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/github/system/BiliTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
import com.github.task.bili.model.BiliUser;
import com.github.task.bili.model.task.BiliData;
import com.github.task.bili.service.BiliService;
import com.github.system.task.dao.HistoryTaskLogDao;
import com.github.system.task.entity.HistoryTaskLog;
import com.github.task.base.dao.HistoryTaskLogDao;
import com.github.task.base.entity.HistoryTaskLog;
import com.github.task.base.dto.TaskResult;
import com.github.push.PushUtil;
import org.apache.commons.logging.Log;
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/github/system/MiHuYouTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import com.github.task.miyoushe.sign.Constant;
import com.github.task.miyoushe.sign.DailyTask;
import com.github.task.miyoushe.sign.gs.GenshinHelperProperties;
import com.github.system.task.dao.HistoryTaskLogDao;
import com.github.system.task.entity.HistoryTaskLog;
import com.github.task.base.dao.HistoryTaskLogDao;
import com.github.task.base.entity.HistoryTaskLog;
import com.github.push.PushUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/github/system/NetMusicTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import com.github.task.netmusic.model.AutoNetmusic;
import com.github.task.netmusic.service.NetmusicService;
import com.github.task.netmusic.util.NeteaseMusicUtil;
import com.github.system.task.dao.HistoryTaskLogDao;
import com.github.system.task.entity.HistoryTaskLog;
import com.github.task.base.dao.HistoryTaskLogDao;
import com.github.task.base.entity.HistoryTaskLog;
import com.github.push.PushUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.github.system.base.config.mybatis;

import com.baomidou.mybatisplus.core.injector.AbstractMethod;
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn;
import org.springframework.stereotype.Component;

import java.util.List;

@Component
public class BatchInjector extends DefaultSqlInjector {
@Override
public List<AbstractMethod> getMethodList(Class<?> mapperClass, TableInfo tableInfo) {
List<AbstractMethod> methodList = super.getMethodList(mapperClass,tableInfo);
methodList.add(new InsertBatchSomeColumn());
return methodList;
}
}
10 changes: 2 additions & 8 deletions src/main/java/com/github/system/controller/UserController.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,9 @@
package com.github.system.controller;

import com.github.system.dao.UserDao;
import com.github.system.base.dto.AjaxResult;
import com.github.system.task.entity.HistoryTaskLog;
import com.github.system.entity.SysUserInfo;
import com.github.system.security.entity.SystemUser;
import com.github.system.security.utils.SessionUtils;
import com.github.system.task.service.LogService;
import com.github.task.base.entity.HistoryTaskLog;
import com.github.system.service.RegService;
import com.github.system.service.UserService;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
Expand All @@ -30,7 +24,7 @@ public class UserController {
private UserService userService;

@Autowired
private LogService logService;
private TaskLogService logService;

@Autowired
private UserDao userDao;
Expand Down
34 changes: 0 additions & 34 deletions src/main/java/com/github/system/log/OldwuLog.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ public abstract class AbstractQuartzJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
SysQuartzJob sysJob = new SysQuartzJob();
BeanUtils.copyProperties(context.getMergedJobDataMap().get(ScheduleConstants.TASK_PROPERTIES), sysJob);
Thread thread = null;
try {
before(context, sysJob);
// 增加超时机制,如果任务执行超时直接将其kill掉
Expand All @@ -48,13 +49,16 @@ public void execute(JobExecutionContext context) throws JobExecutionException {
doExecute(context, sysJob);
return true;
});
Thread thread = new Thread(task);
thread = new Thread(task);
thread.start();
task.get(sysJob.getTimeout(), TimeUnit.SECONDS);
}
after(context, sysJob, null);
} catch (TimeoutException e) {
log.error(sysJob.getJobName() + "任务执行超时");
log.error(sysJob.getJobName() + "任务执行超时(" + sysJob.getTimeout() + "s)");
if (thread != null) {
thread.interrupt();
}
after(context, sysJob, e);
} catch (Exception e) {
log.error("任务执行异常 - :", e);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
package com.github.system;
package com.github.system.schedule;

import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.system.quartz.base.annotation.AutoJob;
import com.github.system.quartz.dao.SysQuartzJobLogMapper;
import com.github.system.quartz.entity.SysQuartzJobLog;
import com.github.system.task.dao.HistoryTaskLogDao;
import com.github.system.task.entity.HistoryTaskLog;
import com.github.task.base.dao.HistoryTaskLogDao;
import com.github.task.base.entity.HistoryTaskLog;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;

import java.util.Date;

Expand Down Expand Up @@ -43,7 +43,7 @@ public void getSysQuartzJobLogMapper(SysQuartzJobLogMapper sysQuartzJobLogMapper
* auto_log表
* 每个月1号清理上个月的日志
*/
@Scheduled(cron = "0 0 0 1 * ?")
@AutoJob(value = "清理历史任务日志表", defaultCron = "0 0 0 1 * ?")
public void cleanUpAutoLog() {
//当前时间减去一个月,即一个月前的时间
int delete = logDao.delete(Wrappers.<HistoryTaskLog>lambdaQuery().le(HistoryTaskLog::getDate, offsetMonth(-1)));
Expand All @@ -54,7 +54,7 @@ public void cleanUpAutoLog() {
* t_sys_quartz_job_log表
* 每个月1号清理上个月的日志
*/
@Scheduled(cron = "0 0 0 1 * ?")
@AutoJob(value = "清理Quartz调度日志表", defaultCron = "0 0 0 1 * ?")
public void cleanUpScheduledTaskLogs() {
//当前时间减去一个月,即一个月前的时间
int delete = sysQuartzJobLogMapper.delete(Wrappers.<SysQuartzJobLog>lambdaQuery().le(SysQuartzJobLog::getStartTime, offsetMonth(-1)));
Expand Down
23 changes: 0 additions & 23 deletions src/main/java/com/github/system/task/service/LogService.java

This file was deleted.

15 changes: 15 additions & 0 deletions src/main/java/com/github/task/base/AutoTaskStatus.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.github.task.base;

import lombok.Getter;

@Getter
public enum AutoTaskStatus {

SUCCESS(200), SYSTEM_ERROR(500);

private final int status;

AutoTaskStatus(int status) {
this.status = status;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.github.task.base.annotation;

/**
* 指定某一个字段是否需要脱敏
* 目前仅对BaseTaskService生效
*/
public @interface DataDesensitization {
}
15 changes: 15 additions & 0 deletions src/main/java/com/github/task/base/annotation/TaskAction.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.github.task.base.annotation;

public @interface TaskAction {

/**
* 子任务名称 用于任务结果日志回显
*/
String name();

/**
* 子任务延时
*/
int delay() default 0;

}
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package com.github.system.task.controller;
package com.github.task.base.controller;

import cn.dev33.satoken.annotation.SaCheckRole;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.system.base.dto.AjaxResult;
import com.github.system.task.service.LogService;
import com.github.system.task.entity.HistoryTaskLog;
import com.github.system.task.vo.HistoryTaskLogVo;
import com.github.task.base.entity.HistoryTaskLog;
import com.github.task.base.service.TaskLogService;
import com.github.task.base.vo.HistoryTaskLogVo;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.*;

Expand All @@ -21,7 +21,7 @@
public class TaskLogController {

@Resource
private LogService logService;
private TaskLogService logService;

@GetMapping("/list")
public Page<HistoryTaskLog> list(Page<HistoryTaskLog> page, HistoryTaskLogVo historyTaskLogVo) {
Expand Down
14 changes: 14 additions & 0 deletions src/main/java/com/github/task/base/dao/AutoIndexDao.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.github.task.base.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.task.base.entity.AutoIndex;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface AutoIndexDao extends BaseMapper<AutoIndex> {

int insertBatchSomeColumn(List<AutoIndex> autoIndexListList);

}
9 changes: 9 additions & 0 deletions src/main/java/com/github/task/base/dao/AutoTaskDao.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.github.task.base.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.task.base.entity.AutoTask;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface AutoTaskDao extends BaseMapper<AutoTask> {
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.github.system.task.dao;
package com.github.task.base.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.github.system.task.entity.HistoryTaskLog;
import com.github.task.base.entity.HistoryTaskLog;
import org.apache.ibatis.annotations.Mapper;

@Mapper
Expand Down
Loading

0 comments on commit 4ea4ca8

Please sign in to comment.