From 69bbd9a5f813f13e8c4e42ae1dc9c4307ad29241 Mon Sep 17 00:00:00 2001 From: tjq Date: Mon, 15 Jun 2020 20:15:57 +0800 Subject: [PATCH] [fix] use Throwable insteadof Exception to catch Error in ProcessorRunnable --- .../powerjob/worker/container/OmsJarContainer.java | 2 +- .../powerjob/worker/core/executor/ProcessorRunnable.java | 8 ++++---- .../worker/core/tracker/processor/ProcessorTracker.java | 4 +++- .../powerjob/worker/core/tracker/task/TaskTracker.java | 1 - 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/container/OmsJarContainer.java b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/container/OmsJarContainer.java index 9d2f4ce1..f1eb08f9 100644 --- a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/container/OmsJarContainer.java +++ b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/container/OmsJarContainer.java @@ -133,7 +133,7 @@ public class OmsJarContainer implements OmsContainer { Thread.currentThread().setContextClassLoader(oldCL); } - log.info("[OmsJarContainer] init container(name={},jarPath={}) successfully", containerId, localJarFile.getPath()); + log.info("[OmsJarContainer-{}] init container(name={},jarPath={}) successfully", containerId, name, localJarFile.getPath()); } @Override diff --git a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/executor/ProcessorRunnable.java b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/executor/ProcessorRunnable.java index 45eee519..78b7c84b 100644 --- a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/executor/ProcessorRunnable.java +++ b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/executor/ProcessorRunnable.java @@ -89,7 +89,7 @@ public class ProcessorRunnable implements Runnable { ProcessResult processResult = broadcastProcessor.preProcess(taskContext); spReq.setSuccess(processResult.isSuccess()); spReq.setMsg(suit(processResult.getMsg())); - }catch (Exception e) { + }catch (Throwable e) { log.warn("[ProcessorRunnable-{}] broadcast task preProcess failed.", instanceId, e); spReq.setSuccess(false); spReq.setMsg(e.toString()); @@ -138,7 +138,7 @@ public class ProcessorRunnable implements Runnable { default: lastResult = new ProcessResult(false, "IMPOSSIBLE OR BUG"); } - }catch (Exception e) { + }catch (Throwable e) { lastResult = new ProcessResult(false, e.toString()); log.warn("[ProcessorRunnable-{}] execute last task(taskId={}) failed.", instanceId, taskId, e); } @@ -155,7 +155,7 @@ public class ProcessorRunnable implements Runnable { ProcessResult processResult; try { processResult = processor.process(taskContext); - }catch (Exception e) { + }catch (Throwable e) { log.warn("[ProcessorRunnable-{}] task(id={},name={}) process failed.", instanceId, taskContext.getTaskId(), taskContext.getTaskName(), e); processResult = new ProcessResult(false, e.toString()); } @@ -184,7 +184,7 @@ public class ProcessorRunnable implements Runnable { try { innerRun(); }catch (InterruptedException ignore) { - }catch (Exception e) { + }catch (Throwable e) { log.error("[ProcessorRunnable-{}] execute failed, please fix this bug @tjq!", task.getInstanceId(), e); }finally { ThreadLocalStore.clear(); diff --git a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/tracker/processor/ProcessorTracker.java b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/tracker/processor/ProcessorTracker.java index 0acfd455..d8721b60 100644 --- a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/tracker/processor/ProcessorTracker.java +++ b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/tracker/processor/ProcessorTracker.java @@ -86,7 +86,7 @@ public class ProcessorTracker { initProcessor(); log.info("[ProcessorTracker-{}] ProcessorTracker was successfully created!", instanceId); - }catch (Exception e) { + }catch (Throwable e) { log.warn("[ProcessorTracker-{}] create ProcessorTracker failed, all tasks submitted here will fail.", instanceId, e); lethal = true; lethalReason = e.toString(); @@ -263,6 +263,8 @@ public class ProcessorTracker { break; case JAVA_CONTAINER: String[] split = processorInfo.split("#"); + log.info("[ProcessorRunnable-{}] try to load processor({}) in container({})", instanceId, split[1], split[0]); + omsContainer = OmsContainerFactory.getContainer(Long.valueOf(split[0])); if (omsContainer != null) { processor = omsContainer.getProcessor(split[1]); diff --git a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/tracker/task/TaskTracker.java b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/tracker/task/TaskTracker.java index ad719593..f57e5811 100644 --- a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/tracker/task/TaskTracker.java +++ b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/tracker/task/TaskTracker.java @@ -162,7 +162,6 @@ public abstract class TaskTracker { // 此时本次请求已经有效,先写入最新的时间 taskId2LastReportTime.put(taskId, reportTime); - log.debug("[TaskTracker-{}] task({}) receive new status: {}", instanceId, taskId, newStatus); // 处理失败的情况 int configTaskRetryNum = instanceInfo.getTaskRetryNum();