diff --git a/powerjob-common/pom.xml b/powerjob-common/pom.xml index fe718257..32a2938a 100644 --- a/powerjob-common/pom.xml +++ b/powerjob-common/pom.xml @@ -19,7 +19,7 @@ 2.6 29.0-jre 3.14.9 - 2.6.4 + 2.6.12 5.6.1 diff --git a/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/persistence/core/model/JobInfoDO.java b/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/persistence/core/model/JobInfoDO.java index 974f3612..bec5eec0 100644 --- a/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/persistence/core/model/JobInfoDO.java +++ b/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/persistence/core/model/JobInfoDO.java @@ -133,7 +133,7 @@ public class JobInfoDO { /** * 扩展参数,PowerJob 自身不会使用该数据,留给开发者扩展时使用 - * 比如 WorkerFilter 的自定义 worker 过滤逻辑,可在次传入过滤指标 GpuUsage < 10 + * 比如 WorkerFilter 的自定义 worker 过滤逻辑,可在此传入过滤指标 GpuUsage < 10 */ private String extra; diff --git a/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/remote/worker/cluster/filter/DesignatedWorkerFilter.java b/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/remote/worker/cluster/filter/DesignatedWorkerFilter.java index d424dc92..879f3620 100644 --- a/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/remote/worker/cluster/filter/DesignatedWorkerFilter.java +++ b/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/remote/worker/cluster/filter/DesignatedWorkerFilter.java @@ -5,6 +5,7 @@ import com.github.kfcfans.powerjob.server.extension.WorkerFilter; import com.github.kfcfans.powerjob.server.persistence.core.model.JobInfoDO; import com.github.kfcfans.powerjob.server.remote.worker.cluster.WorkerInfo; import com.google.common.collect.Sets; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; @@ -16,22 +17,24 @@ import java.util.Set; * @author tjq * @since 2021/2/19 */ +@Slf4j @Component public class DesignatedWorkerFilter implements WorkerFilter { // min length 1.1.1.1:1 - private static final int MIN_IP_LENGTH = 9; + private static final int MIN_ADDRESS_LENGTH = 9; @Override - public boolean filter(WorkerInfo workerInfo, JobInfoDO jobInfoDO) { + public boolean filter(WorkerInfo workerInfo, JobInfoDO jobInfo) { - String designatedWorkers = jobInfoDO.getDesignatedWorkers(); + String designatedWorkers = jobInfo.getDesignatedWorkers(); - if (StringUtils.isEmpty(designatedWorkers) || designatedWorkers.length() < MIN_IP_LENGTH) { + if (StringUtils.isEmpty(designatedWorkers) || designatedWorkers.length() < MIN_ADDRESS_LENGTH) { return false; } Set designatedWorkersSet = Sets.newHashSet(SJ.commaSplitter.splitToList(designatedWorkers)); + return !designatedWorkersSet.contains(workerInfo.getAddress()); } } diff --git a/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/remote/worker/cluster/filter/DisconnectedWorkerFilter.java b/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/remote/worker/cluster/filter/DisconnectedWorkerFilter.java index a56152f2..46a3c167 100644 --- a/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/remote/worker/cluster/filter/DisconnectedWorkerFilter.java +++ b/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/remote/worker/cluster/filter/DisconnectedWorkerFilter.java @@ -3,6 +3,7 @@ package com.github.kfcfans.powerjob.server.remote.worker.cluster.filter; import com.github.kfcfans.powerjob.server.extension.WorkerFilter; import com.github.kfcfans.powerjob.server.persistence.core.model.JobInfoDO; import com.github.kfcfans.powerjob.server.remote.worker.cluster.WorkerInfo; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; /** @@ -11,11 +12,16 @@ import org.springframework.stereotype.Component; * @author tjq * @since 2021/2/19 */ +@Slf4j @Component public class DisconnectedWorkerFilter implements WorkerFilter { @Override - public boolean filter(WorkerInfo workerInfo, JobInfoDO jobInfoDO) { - return workerInfo.timeout(); + public boolean filter(WorkerInfo workerInfo, JobInfoDO jobInfo) { + boolean timeout = workerInfo.timeout(); + if (timeout) { + log.info("[Job-{}] filter worker[{}] due to timeout(lastActiveTime={})", jobInfo.getId(), workerInfo.getAddress(), workerInfo.getLastActiveTime()); + } + return timeout; } } diff --git a/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/remote/worker/cluster/filter/SystemMetricsWorkerFilter.java b/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/remote/worker/cluster/filter/SystemMetricsWorkerFilter.java index 0a40973b..78b9bae5 100644 --- a/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/remote/worker/cluster/filter/SystemMetricsWorkerFilter.java +++ b/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/remote/worker/cluster/filter/SystemMetricsWorkerFilter.java @@ -4,6 +4,7 @@ import com.github.kfcfans.powerjob.common.model.SystemMetrics; import com.github.kfcfans.powerjob.server.extension.WorkerFilter; import com.github.kfcfans.powerjob.server.persistence.core.model.JobInfoDO; import com.github.kfcfans.powerjob.server.remote.worker.cluster.WorkerInfo; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; /** @@ -12,12 +13,17 @@ import org.springframework.stereotype.Component; * @author tjq * @since 2021/2/19 */ +@Slf4j @Component public class SystemMetricsWorkerFilter implements WorkerFilter { @Override public boolean filter(WorkerInfo workerInfo, JobInfoDO jobInfo) { SystemMetrics metrics = workerInfo.getSystemMetrics(); - return !metrics.available(jobInfo.getMinCpuCores(), jobInfo.getMinMemorySpace(), jobInfo.getMinDiskSpace()); + boolean filter = !metrics.available(jobInfo.getMinCpuCores(), jobInfo.getMinMemorySpace(), jobInfo.getMinDiskSpace()); + if (filter) { + log.info("[Job-{}] filter worker[{}] because the {} do not meet the requirements", jobInfo.getId(), workerInfo.getAddress(), workerInfo.getSystemMetrics()); + } + return filter; } } diff --git a/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/service/JobService.java b/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/service/JobService.java index 86be4bac..05d54d75 100644 --- a/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/service/JobService.java +++ b/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/service/JobService.java @@ -130,7 +130,7 @@ public class JobService { } else { InstanceTimeWheelService.schedule(instanceId, delay, () -> dispatchService.dispatch(jobInfo, instanceId)); } - log.info("[Job-{}] run job successfully, params={}, instanceId={}", jobInfo.getId(), instanceParams, instanceId); + log.info("[Job-{}|{}] execute 'runJob' successfully, params={}", jobInfo.getId(), instanceId, instanceParams); return instanceId; } diff --git a/powerjob-server/src/main/resources/banner.txt b/powerjob-server/src/main/resources/banner.txt index b19a0c68..228343eb 100644 --- a/powerjob-server/src/main/resources/banner.txt +++ b/powerjob-server/src/main/resources/banner.txt @@ -11,4 +11,4 @@ ${AnsiColor.BRIGHT_RED} * Maintainer: tengjiqi@gmail.com & Team PowerJob * OfficialWebsite: http://www.powerjob.tech/ * SourceCode: https://github.com/PowerJob/PowerJob -* PoweredBy: SpringBoot${spring-boot.formatted-version} & Akka (v2.6.4) +* PoweredBy: SpringBoot${spring-boot.formatted-version} & Akka (v2.6.12)