异常处理、日志处理及部分代码简单美化

This commit is contained in:
cszxyang 2022-04-20 00:14:01 +08:00
parent d4132524ad
commit d55068a5bf
2 changed files with 33 additions and 41 deletions

View File

@ -83,6 +83,7 @@ public class XxlJobExecutor {
// init executor-server // init executor-server
initEmbedServer(address, ip, port, appname, accessToken); initEmbedServer(address, ip, port, appname, accessToken);
} }
public void destroy(){ public void destroy(){
// destroy executor-server // destroy executor-server
stopEmbedServer(); stopEmbedServer();
@ -131,6 +132,7 @@ public class XxlJobExecutor {
} }
} }
} }
public static List<AdminBiz> getAdminBizList(){ public static List<AdminBiz> getAdminBizList(){
return adminBizList; return adminBizList;
} }
@ -251,6 +253,7 @@ public class XxlJobExecutor {
return newJobThread; return newJobThread;
} }
public static JobThread removeJobThread(int jobId, String removeOldReason){ public static JobThread removeJobThread(int jobId, String removeOldReason){
JobThread oldJobThread = jobThreadRepository.remove(jobId); JobThread oldJobThread = jobThreadRepository.remove(jobId);
if (oldJobThread != null) { if (oldJobThread != null) {
@ -261,9 +264,8 @@ public class XxlJobExecutor {
} }
return null; return null;
} }
public static JobThread loadJobThread(int jobId){
JobThread jobThread = jobThreadRepository.get(jobId);
return jobThread;
}
public static JobThread loadJobThread(int jobId){
return jobThreadRepository.get(jobId);
}
} }

View File

@ -36,10 +36,8 @@ public class EmbedServer {
public void start(final String address, final int port, final String appname, final String accessToken) { public void start(final String address, final int port, final String appname, final String accessToken) {
executorBiz = new ExecutorBizImpl(); executorBiz = new ExecutorBizImpl();
thread = new Thread(new Runnable() { thread = new Thread(new Runnable() {
@Override @Override
public void run() { public void run() {
// param // param
EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGroup bossGroup = new NioEventLoopGroup();
EventLoopGroup workerGroup = new NioEventLoopGroup(); EventLoopGroup workerGroup = new NioEventLoopGroup();
@ -61,8 +59,6 @@ public class EmbedServer {
throw new RuntimeException("xxl-job, EmbedServer bizThreadPool is EXHAUSTED!"); throw new RuntimeException("xxl-job, EmbedServer bizThreadPool is EXHAUSTED!");
} }
}); });
try { try {
// start server // start server
ServerBootstrap bootstrap = new ServerBootstrap(); ServerBootstrap bootstrap = new ServerBootstrap();
@ -92,11 +88,9 @@ public class EmbedServer {
future.channel().closeFuture().sync(); future.channel().closeFuture().sync();
} catch (InterruptedException e) { } catch (InterruptedException e) {
if (e instanceof InterruptedException) { logger.info(">>>>>>>>>>> xxl-job remoting server stop.");
logger.info(">>>>>>>>>>> xxl-job remoting server stop."); } catch (Exception e) {
} else { logger.error(">>>>>>>>>>> xxl-job remoting server error.", e);
logger.error(">>>>>>>>>>> xxl-job remoting server error.", e);
}
} finally { } finally {
// stop // stop
try { try {
@ -106,17 +100,15 @@ public class EmbedServer {
logger.error(e.getMessage(), e); logger.error(e.getMessage(), e);
} }
} }
} }
}); });
thread.setDaemon(true); // daemon, service jvm, user thread leave >>> daemon leave >>> jvm leave thread.setDaemon(true); // daemon, service jvm, user thread leave >>> daemon leave >>> jvm leave
thread.start(); thread.start();
} }
public void stop() throws Exception { public void stop() throws Exception {
// destroy server thread // destroy server thread
if (thread!=null && thread.isAlive()) { if (thread != null && thread.isAlive()) {
thread.interrupt(); thread.interrupt();
} }
@ -130,7 +122,7 @@ public class EmbedServer {
/** /**
* netty_http * netty_http
* * <p>
* Copy from : https://github.com/xuxueli/xxl-rpc * Copy from : https://github.com/xuxueli/xxl-rpc
* *
* @author xuxueli 2015-11-24 22:25:15 * @author xuxueli 2015-11-24 22:25:15
@ -141,6 +133,7 @@ public class EmbedServer {
private ExecutorBiz executorBiz; private ExecutorBiz executorBiz;
private String accessToken; private String accessToken;
private ThreadPoolExecutor bizThreadPool; private ThreadPoolExecutor bizThreadPool;
public EmbedHttpServerHandler(ExecutorBiz executorBiz, String accessToken, ThreadPoolExecutor bizThreadPool) { public EmbedHttpServerHandler(ExecutorBiz executorBiz, String accessToken, ThreadPoolExecutor bizThreadPool) {
this.executorBiz = executorBiz; this.executorBiz = executorBiz;
this.accessToken = accessToken; this.accessToken = accessToken;
@ -149,7 +142,6 @@ public class EmbedServer {
@Override @Override
protected void channelRead0(final ChannelHandlerContext ctx, FullHttpRequest msg) throws Exception { protected void channelRead0(final ChannelHandlerContext ctx, FullHttpRequest msg) throws Exception {
// request parse // request parse
//final byte[] requestBytes = ByteBufUtil.getBytes(msg.content()); // byteBuf.toString(io.netty.util.CharsetUtil.UTF_8); //final byte[] requestBytes = ByteBufUtil.getBytes(msg.content()); // byteBuf.toString(io.netty.util.CharsetUtil.UTF_8);
String requestData = msg.content().toString(CharsetUtil.UTF_8); String requestData = msg.content().toString(CharsetUtil.UTF_8);
@ -175,38 +167,38 @@ public class EmbedServer {
} }
private Object process(HttpMethod httpMethod, String uri, String requestData, String accessTokenReq) { private Object process(HttpMethod httpMethod, String uri, String requestData, String accessTokenReq) {
// valid // valid
if (HttpMethod.POST != httpMethod) { if (HttpMethod.POST != httpMethod) {
return new ReturnT<String>(ReturnT.FAIL_CODE, "invalid request, HttpMethod not support."); return new ReturnT<String>(ReturnT.FAIL_CODE, "invalid request, HttpMethod not support.");
} }
if (uri==null || uri.trim().length()==0) { if (uri == null || uri.trim().length() == 0) {
return new ReturnT<String>(ReturnT.FAIL_CODE, "invalid request, uri-mapping empty."); return new ReturnT<String>(ReturnT.FAIL_CODE, "invalid request, uri-mapping empty.");
} }
if (accessToken!=null if (accessToken != null
&& accessToken.trim().length()>0 && accessToken.trim().length() > 0
&& !accessToken.equals(accessTokenReq)) { && !accessToken.equals(accessTokenReq)) {
return new ReturnT<String>(ReturnT.FAIL_CODE, "The access token is wrong."); return new ReturnT<String>(ReturnT.FAIL_CODE, "The access token is wrong.");
} }
// services mapping // services mapping
try { try {
if ("/beat".equals(uri)) { switch (uri) {
return executorBiz.beat(); case "/beat":
} else if ("/idleBeat".equals(uri)) { return executorBiz.beat();
IdleBeatParam idleBeatParam = GsonTool.fromJson(requestData, IdleBeatParam.class); case "/idleBeat":
return executorBiz.idleBeat(idleBeatParam); IdleBeatParam idleBeatParam = GsonTool.fromJson(requestData, IdleBeatParam.class);
} else if ("/run".equals(uri)) { return executorBiz.idleBeat(idleBeatParam);
TriggerParam triggerParam = GsonTool.fromJson(requestData, TriggerParam.class); case "/run":
return executorBiz.run(triggerParam); TriggerParam triggerParam = GsonTool.fromJson(requestData, TriggerParam.class);
} else if ("/kill".equals(uri)) { return executorBiz.run(triggerParam);
KillParam killParam = GsonTool.fromJson(requestData, KillParam.class); case "/kill":
return executorBiz.kill(killParam); KillParam killParam = GsonTool.fromJson(requestData, KillParam.class);
} else if ("/log".equals(uri)) { return executorBiz.kill(killParam);
LogParam logParam = GsonTool.fromJson(requestData, LogParam.class); case "/log":
return executorBiz.log(logParam); LogParam logParam = GsonTool.fromJson(requestData, LogParam.class);
} else { return executorBiz.log(logParam);
return new ReturnT<String>(ReturnT.FAIL_CODE, "invalid request, uri-mapping("+ uri +") not found."); default:
return new ReturnT<String>(ReturnT.FAIL_CODE, "invalid request, uri-mapping(" + uri + ") not found.");
} }
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage(), e); logger.error(e.getMessage(), e);
@ -261,6 +253,4 @@ public class EmbedServer {
// stop registry // stop registry
ExecutorRegistryThread.getInstance().toStop(); ExecutorRegistryThread.getInstance().toStop();
} }
} }