1、SQL任务异常类

Former-commit-id: 663f4f09e2043af0e8e1494e572f8c5ddace8a91
master
王兵 5 years ago
parent 6bc04b905f
commit b2c62e2c76

@ -525,6 +525,7 @@ public class SpringBootCallable implements Callable {
File exception = Tool.createPath(excel.getAbsolutePath(), "exception"); File exception = Tool.createPath(excel.getAbsolutePath(), "exception");
File excelstyle = Tool.createPath(excel.getAbsolutePath(), "style"); File excelstyle = Tool.createPath(excel.getAbsolutePath(), "style");
File schedule = Tool.createPath(root.getAbsolutePath(), "schedule"); File schedule = Tool.createPath(root.getAbsolutePath(), "schedule");
File scheduleException = Tool.createPath(schedule.getAbsolutePath(), "exception");
File utils = Tool.createPath(root.getAbsolutePath(), "utils"); File utils = Tool.createPath(root.getAbsolutePath(), "utils");
File validation = Tool.createPath(root.getAbsolutePath(), "validation"); File validation = Tool.createPath(root.getAbsolutePath(), "validation");
@ -559,6 +560,11 @@ public class SpringBootCallable implements Callable {
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/schedule/")) { for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/schedule/")) {
freeMarkerManager.outputTemp(Tool.createFile(schedule.getAbsolutePath(), name), "SpringBoot/java/frame/schedule/" + name, ctx); freeMarkerManager.outputTemp(Tool.createFile(schedule.getAbsolutePath(), name), "SpringBoot/java/frame/schedule/" + name, ctx);
} }
//scheduleException
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/schedule/exception/")) {
freeMarkerManager.outputTemp(Tool.createFile(scheduleException.getAbsolutePath(), name), "SpringBoot/java/frame/schedule/exception/" + name, ctx);
}
//utils //utils
for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/utils/")) { for (String name : ResourceUtil.getResourceFiles("/modules/SpringBoot/java/frame/utils/")) {
ArrayList<String> filters = new ArrayList<>(); ArrayList<String> filters = new ArrayList<>();

@ -1,7 +1,11 @@
package ${basePackage}.frame.schedule; package ${basePackage}.frame.schedule;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.util.ErrorHandler;
import ${basePackage}.frame.auth.LocalData;
import ${basePackage}.frame.schedule.exception.TaskRunException;
import ${basePackage}.module.system.ent.Schedule; import ${basePackage}.module.system.ent.Schedule;
import ${basePackage}.module.system.mgr.LogErrManager;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
@ -9,12 +13,12 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledFuture;
public class Scheduler extends ThreadPoolTaskScheduler { public class Scheduler extends ThreadPoolTaskScheduler implements ErrorHandler {
private Map<String, TaskWrapper> taskMap; private Map<String, TaskWrapper> taskMap = new HashMap<>();
public Scheduler() { public Scheduler() {
taskMap = new HashMap<>(); setErrorHandler(this);
setPoolSize(4); setPoolSize(4);
initialize(); initialize();
} }
@ -69,6 +73,14 @@ public class Scheduler extends ThreadPoolTaskScheduler {
return result; return result;
} }
@Override
public void handleError(Throwable throwable) {
if (throwable instanceof TaskRunException) {
LogErrManager logErrManager = LocalData.getBean(LogErrManager.class);
if (logErrManager != null) logErrManager.addErr("SYS_ERR", "任务执行错误", "");
}
}
class TaskWrapper { class TaskWrapper {
RunTask target; RunTask target;
String taskId; String taskId;

@ -0,0 +1,26 @@
package ${basePackage}.frame.schedule.exception;
/**
*
*
* @author wangbing
* @version 0.0.1
* @since 2017-01-01
*/
public class TaskRunException extends RuntimeException {
private String taskId;
public TaskRunException(String s, String taskId) {
super(s);
this.taskId = taskId;
}
public String getTaskId() {
return taskId;
}
public void setTaskId(String taskId) {
this.taskId = taskId;
}
}

@ -1,8 +1,8 @@
package ${basePackage}.frame.utils; package ${basePackage}.frame.utils;
import ${basePackage}.frame.auth.LocalData;
import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactory;
import xyz.wbsite.frame.auth.LocalData;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
@ -18,16 +18,17 @@ import java.util.List;
public class SqlUtil { public class SqlUtil {
public static void exec(String sql) { public static void exec(String sql) {
SqlSession sqlSession = null;
try { try {
SqlSessionFactory factory = LocalData.getBean(SqlSessionFactory.class); SqlSessionFactory factory = LocalData.getBean(SqlSessionFactory.class);
SqlSession sqlSession = factory.openSession(true); sqlSession = factory.openSession(true);
Connection connection = sqlSession.getConnection(); Connection connection = sqlSession.getConnection();
PreparedStatement statement = connection.prepareStatement(sql); PreparedStatement statement = connection.prepareStatement(sql);
statement.execute(); statement.execute();
statement.close();
connection.close();
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); throw new RuntimeException(String.format("[ %s ]执行错误!", sql));
} finally {
if (sqlSession != null) sqlSession.close();
} }
} }
@ -40,17 +41,20 @@ public class SqlUtil {
} }
public static int update(String sql) { public static int update(String sql) {
SqlSession sqlSession = null;
int result = 0; int result = 0;
try { try {
SqlSessionFactory factory = LocalData.getBean(SqlSessionFactory.class); SqlSessionFactory factory = LocalData.getBean(SqlSessionFactory.class);
SqlSession sqlSession = factory.openSession(true); sqlSession = factory.openSession(true);
Connection connection = sqlSession.getConnection(); Connection connection = sqlSession.getConnection();
PreparedStatement statement = connection.prepareStatement(sql); PreparedStatement statement = connection.prepareStatement(sql);
result = statement.executeUpdate(); result = statement.executeUpdate();
statement.close(); statement.close();
connection.close(); connection.close();
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); throw new RuntimeException(String.format("[ %s ]执行错误!", sql));
} finally {
if (sqlSession != null) sqlSession.close();
} }
return result; return result;
} }

@ -1,11 +1,19 @@
package ${basePackage}.module.system.mgr; package ${basePackage}.module.system.mgr;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.pagehelper.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.support.CronSequenceGenerator;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import ${basePackage}.frame.auth.Token; import ${basePackage}.frame.auth.Token;
import ${basePackage}.frame.base.ErrorType; import ${basePackage}.frame.base.ErrorType;
import ${basePackage}.frame.schedule.RunCronTask; import ${basePackage}.frame.schedule.RunCronTask;
import ${basePackage}.frame.schedule.RunDelayRepeatTask; import ${basePackage}.frame.schedule.RunDelayRepeatTask;
import ${basePackage}.frame.schedule.RunFixRepeatTask; import ${basePackage}.frame.schedule.RunFixRepeatTask;
import ${basePackage}.frame.schedule.Scheduler; import ${basePackage}.frame.schedule.Scheduler;
import ${basePackage}.frame.schedule.exception.TaskRunException;
import ${basePackage}.frame.utils.IDgenerator; import ${basePackage}.frame.utils.IDgenerator;
import ${basePackage}.frame.utils.MapperUtil; import ${basePackage}.frame.utils.MapperUtil;
import ${basePackage}.frame.utils.Message; import ${basePackage}.frame.utils.Message;
@ -23,13 +31,6 @@ import ${basePackage}.module.system.rsp.TaskSqlDeleteResponse;
import ${basePackage}.module.system.rsp.TaskSqlFindResponse; import ${basePackage}.module.system.rsp.TaskSqlFindResponse;
import ${basePackage}.module.system.rsp.TaskSqlGetResponse; import ${basePackage}.module.system.rsp.TaskSqlGetResponse;
import ${basePackage}.module.system.rsp.TaskSqlUpdateResponse; import ${basePackage}.module.system.rsp.TaskSqlUpdateResponse;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.pagehelper.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.support.CronSequenceGenerator;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.Duration; import java.time.Duration;
@ -257,7 +258,7 @@ public class TaskSqlManagerImpl implements TaskSqlManager {
try { try {
SqlUtil.exec(taskSql.getTaskSql()); SqlUtil.exec(taskSql.getTaskSql());
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); throw new TaskRunException("SQL任务执行异常", taskId());
} }
} }
}); });
@ -285,7 +286,7 @@ public class TaskSqlManagerImpl implements TaskSqlManager {
try { try {
SqlUtil.exec(taskSql.getTaskSql()); SqlUtil.exec(taskSql.getTaskSql());
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); throw new TaskRunException("SQL任务执行异常", taskId());
} }
} }
}); });
@ -313,7 +314,7 @@ public class TaskSqlManagerImpl implements TaskSqlManager {
try { try {
SqlUtil.exec(taskSql.getTaskSql()); SqlUtil.exec(taskSql.getTaskSql());
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); throw new TaskRunException("SQL任务执行异常", taskId());
} }
} }
}); });

Loading…
Cancel
Save

Powered by TurnKey Linux.