From 6fc5c65825010be288dd0b45a850cde139fe8d1e Mon Sep 17 00:00:00 2001 From: tjq Date: Sun, 3 Jan 2021 13:01:35 +0800 Subject: [PATCH] fix: receive ProcessorTrackerStatusReportReq but system can't find TaskTracker #147 --- .../worker/core/tracker/task/CommonTaskTracker.java | 6 ++++-- .../powerjob/worker/core/tracker/task/TaskTracker.java | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/tracker/task/CommonTaskTracker.java b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/tracker/task/CommonTaskTracker.java index 046b824a..d5e05d0f 100644 --- a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/tracker/task/CommonTaskTracker.java +++ b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/core/tracker/task/CommonTaskTracker.java @@ -56,8 +56,7 @@ public class CommonTaskTracker extends TaskTracker { // 持久化根任务 persistenceRootTask(); - // 启动定时任务(任务派发 & 状态检查) - scheduledPool.scheduleWithFixedDelay(new Dispatcher(), 0, 5, TimeUnit.SECONDS); + // 开启定时状态检查 scheduledPool.scheduleWithFixedDelay(new StatusCheckRunnable(), 13, 13, TimeUnit.SECONDS); // 如果是 MR 任务,则需要启动执行器动态检测装置 @@ -65,6 +64,9 @@ public class CommonTaskTracker extends TaskTracker { if (executeType == ExecuteType.MAP || executeType == ExecuteType.MAP_REDUCE) { scheduledPool.scheduleAtFixedRate(new WorkerDetector(), 1, 1, TimeUnit.MINUTES); } + + // 最后启动任务派发器,否则会出现 TaskTracker 还未创建完毕 ProcessorTracker 已开始汇报状态的情况 + scheduledPool.scheduleWithFixedDelay(new Dispatcher(), 10, 5000, TimeUnit.MILLISECONDS); } @Override 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 15827976..f8856edc 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 @@ -119,7 +119,7 @@ public abstract class TaskTracker { case FIX_DELAY:return new FrequentTaskTracker(req); default:return new CommonTaskTracker(req); } - }catch (Exception e) { + } catch (Exception e) { log.warn("[TaskTracker-{}] create TaskTracker from request({}) failed.", req.getInstanceId(), req, e); // 直接发送失败请求