From 51d12dc6b4178981d7926dc54b8e0b1dc337fd50 Mon Sep 17 00:00:00 2001 From: tjq Date: Sun, 7 Mar 2021 00:15:55 +0800 Subject: [PATCH] style: optimize server's package --- powerjob-server/pom.xml | 10 +++++-- .../powerjob/server/common/module}/Alarm.java | 2 +- .../server/common/module}/WorkerInfo.java | 2 +- .../powerjob-server-extension/pom.xml | 28 +++++++++++++++++++ .../powerjob/server/extension/Alarmable.java | 17 +++++++++++ .../server/extension/LockService.java | 0 .../server/extension/WorkerFilter.java | 2 +- .../extension/impl}/DatabaseLockService.java | 2 +- .../impl/alram}/DingTalkAlarmService.java | 6 ++-- .../extension/impl/alram}/DingTalkUtils.java | 2 +- .../impl/alram}/MailAlarmService.java | 4 +-- .../impl/alram}/WebHookAlarmService.java | 4 +-- .../workerfilter}/DesignatedWorkerFilter.java | 4 +-- .../DisconnectedWorkerFilter.java | 4 +-- .../SystemMetricsWorkerFilter.java | 4 +-- .../powerjob-server-remote/pom.xml | 4 +++ .../powerjob-server-starter/pom.xml | 4 +++ .../powerjob/server/extension/Alarmable.java | 24 ---------------- .../extension/ServerElectionService.java | 12 -------- .../server/remote/DispatchService.java | 2 +- ...ervice.java => ServerElectionService.java} | 4 +-- .../worker/cluster/ClusterStatusHolder.java | 1 + .../cluster/WorkerClusterQueryService.java | 1 + .../worker/handler/WorkerRequestHandler.java | 2 +- .../server/service/ContainerService.java | 2 +- .../server/service/alarm/AlarmCenter.java | 27 ++++++++++-------- .../service/alarm/JobInstanceAlarm.java | 1 + .../service/alarm/WorkflowInstanceAlarm.java | 1 + .../service/instance/InstanceManager.java | 4 ++- .../service/instance/InstanceService.java | 2 +- .../workflow/WorkflowInstanceManager.java | 4 ++- .../web/controller/ServerController.java | 2 +- .../web/controller/SystemInfoController.java | 2 +- .../server/web/response/WorkerStatusVO.java | 2 +- .../powerjob/server/test/DingTalkTest.java | 2 +- 35 files changed, 113 insertions(+), 81 deletions(-) rename powerjob-server/{powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm => powerjob-server-common/src/main/java/tech/powerjob/server/common/module}/Alarm.java (96%) rename powerjob-server/{powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster => powerjob-server-common/src/main/java/tech/powerjob/server/common/module}/WorkerInfo.java (95%) create mode 100644 powerjob-server/powerjob-server-extension/pom.xml create mode 100644 powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/Alarmable.java rename powerjob-server/{powerjob-server-starter => powerjob-server-extension}/src/main/java/tech/powerjob/server/extension/LockService.java (100%) rename powerjob-server/{powerjob-server-starter => powerjob-server-extension}/src/main/java/tech/powerjob/server/extension/WorkerFilter.java (89%) rename powerjob-server/{powerjob-server-starter/src/main/java/tech/powerjob/server/service/lock => powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl}/DatabaseLockService.java (98%) rename powerjob-server/{powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/impl => powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/alram}/DingTalkAlarmService.java (96%) rename powerjob-server/{powerjob-server-starter/src/main/java/tech/powerjob/server/common/utils => powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/alram}/DingTalkUtils.java (99%) rename powerjob-server/{powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/impl => powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/alram}/MailAlarmService.java (95%) rename powerjob-server/{powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/impl => powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/alram}/WebHookAlarmService.java (95%) rename powerjob-server/{powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/filter => powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/workerfilter}/DesignatedWorkerFilter.java (89%) rename powerjob-server/{powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/filter => powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/workerfilter}/DisconnectedWorkerFilter.java (85%) rename powerjob-server/{powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/filter => powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/workerfilter}/SystemMetricsWorkerFilter.java (88%) delete mode 100644 powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/extension/Alarmable.java delete mode 100644 powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/extension/ServerElectionService.java rename powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/server/election/{DefaultServerElectionService.java => ServerElectionService.java} (97%) diff --git a/powerjob-server/pom.xml b/powerjob-server/pom.xml index 805fe777..675cacc0 100644 --- a/powerjob-server/pom.xml +++ b/powerjob-server/pom.xml @@ -16,6 +16,7 @@ powerjob-server-remote powerjob-server-persistence powerjob-server-starter + powerjob-server-extension pom @@ -47,12 +48,17 @@ tech.powerjob - powerjob-server-remote + powerjob-server-common 1.0.0 tech.powerjob - powerjob-server-common + powerjob-server-extension + 1.0.0 + + + tech.powerjob + powerjob-server-remote 1.0.0 diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/Alarm.java b/powerjob-server/powerjob-server-common/src/main/java/tech/powerjob/server/common/module/Alarm.java similarity index 96% rename from powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/Alarm.java rename to powerjob-server/powerjob-server-common/src/main/java/tech/powerjob/server/common/module/Alarm.java index 6a29ca4d..58e6a93e 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/Alarm.java +++ b/powerjob-server/powerjob-server-common/src/main/java/tech/powerjob/server/common/module/Alarm.java @@ -1,4 +1,4 @@ -package tech.powerjob.server.service.alarm; +package tech.powerjob.server.common.module; import com.alibaba.fastjson.JSONObject; import com.github.kfcfans.powerjob.common.OmsConstant; diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/WorkerInfo.java b/powerjob-server/powerjob-server-common/src/main/java/tech/powerjob/server/common/module/WorkerInfo.java similarity index 95% rename from powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/WorkerInfo.java rename to powerjob-server/powerjob-server-common/src/main/java/tech/powerjob/server/common/module/WorkerInfo.java index a19263f4..7e271b25 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/WorkerInfo.java +++ b/powerjob-server/powerjob-server-common/src/main/java/tech/powerjob/server/common/module/WorkerInfo.java @@ -1,4 +1,4 @@ -package tech.powerjob.server.remote.worker.cluster; +package tech.powerjob.server.common.module; import com.github.kfcfans.powerjob.common.model.DeployedContainerInfo; import com.github.kfcfans.powerjob.common.model.SystemMetrics; diff --git a/powerjob-server/powerjob-server-extension/pom.xml b/powerjob-server/powerjob-server-extension/pom.xml new file mode 100644 index 00000000..dedd4834 --- /dev/null +++ b/powerjob-server/powerjob-server-extension/pom.xml @@ -0,0 +1,28 @@ + + + + powerjob-server + com.github.kfcfans + 3.4.6 + + 4.0.0 + + tech.powerjob + powerjob-server-extension + 1.0.0 + + + 8 + 8 + + + + + tech.powerjob + powerjob-server-persistence + + + + \ No newline at end of file diff --git a/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/Alarmable.java b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/Alarmable.java new file mode 100644 index 00000000..312d0240 --- /dev/null +++ b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/Alarmable.java @@ -0,0 +1,17 @@ +package tech.powerjob.server.extension; + +import tech.powerjob.server.persistence.core.model.UserInfoDO; +import tech.powerjob.server.common.module.Alarm; + +import java.util.List; + +/** + * 报警接口 + * + * @author tjq + * @since 2020/4/19 + */ +public interface Alarmable { + + void onFailed(Alarm alarm, List targetUserList); +} diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/extension/LockService.java b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/LockService.java similarity index 100% rename from powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/extension/LockService.java rename to powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/LockService.java diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/extension/WorkerFilter.java b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/WorkerFilter.java similarity index 89% rename from powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/extension/WorkerFilter.java rename to powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/WorkerFilter.java index 374ddf0b..54859813 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/extension/WorkerFilter.java +++ b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/WorkerFilter.java @@ -1,7 +1,7 @@ package tech.powerjob.server.extension; import tech.powerjob.server.persistence.core.model.JobInfoDO; -import tech.powerjob.server.remote.worker.cluster.WorkerInfo; +import tech.powerjob.server.common.module.WorkerInfo; /** * filter worker by system metrics or other info diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/lock/DatabaseLockService.java b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/DatabaseLockService.java similarity index 98% rename from powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/lock/DatabaseLockService.java rename to powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/DatabaseLockService.java index 9dd7f3b1..f7da69e1 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/lock/DatabaseLockService.java +++ b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/DatabaseLockService.java @@ -1,4 +1,4 @@ -package tech.powerjob.server.service.lock; +package tech.powerjob.server.extension.impl; import com.github.kfcfans.powerjob.common.utils.CommonUtils; import com.github.kfcfans.powerjob.common.utils.NetUtils; diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/impl/DingTalkAlarmService.java b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/alram/DingTalkAlarmService.java similarity index 96% rename from powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/impl/DingTalkAlarmService.java rename to powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/alram/DingTalkAlarmService.java index 6e9eeac5..668d7edb 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/impl/DingTalkAlarmService.java +++ b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/alram/DingTalkAlarmService.java @@ -1,13 +1,13 @@ -package tech.powerjob.server.service.alarm.impl; +package tech.powerjob.server.extension.impl.alram; import com.github.kfcfans.powerjob.common.OmsConstant; import com.github.kfcfans.powerjob.common.PowerJobException; import com.github.kfcfans.powerjob.common.utils.NetUtils; import tech.powerjob.server.common.PowerJobServerConfigKey; import tech.powerjob.server.common.SJ; -import tech.powerjob.server.common.utils.DingTalkUtils; +import tech.powerjob.server.extension.impl.alram.DingTalkUtils; import tech.powerjob.server.persistence.core.model.UserInfoDO; -import tech.powerjob.server.service.alarm.Alarm; +import tech.powerjob.server.common.module.Alarm; import tech.powerjob.server.extension.Alarmable; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/common/utils/DingTalkUtils.java b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/alram/DingTalkUtils.java similarity index 99% rename from powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/common/utils/DingTalkUtils.java rename to powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/alram/DingTalkUtils.java index 8253bf8e..db60ac3d 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/common/utils/DingTalkUtils.java +++ b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/alram/DingTalkUtils.java @@ -1,4 +1,4 @@ -package tech.powerjob.server.common.utils; +package tech.powerjob.server.extension.impl.alram; import com.dingtalk.api.DefaultDingTalkClient; import com.dingtalk.api.DingTalkClient; diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/impl/MailAlarmService.java b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/alram/MailAlarmService.java similarity index 95% rename from powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/impl/MailAlarmService.java rename to powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/alram/MailAlarmService.java index afb0d838..ab9fe5ce 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/impl/MailAlarmService.java +++ b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/alram/MailAlarmService.java @@ -1,7 +1,7 @@ -package tech.powerjob.server.service.alarm.impl; +package tech.powerjob.server.extension.impl.alram; import tech.powerjob.server.persistence.core.model.UserInfoDO; -import tech.powerjob.server.service.alarm.Alarm; +import tech.powerjob.server.common.module.Alarm; import tech.powerjob.server.extension.Alarmable; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/impl/WebHookAlarmService.java b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/alram/WebHookAlarmService.java similarity index 95% rename from powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/impl/WebHookAlarmService.java rename to powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/alram/WebHookAlarmService.java index 5da1125d..216d5bad 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/impl/WebHookAlarmService.java +++ b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/alram/WebHookAlarmService.java @@ -1,10 +1,10 @@ -package tech.powerjob.server.service.alarm.impl; +package tech.powerjob.server.extension.impl.alram; import com.alibaba.fastjson.JSONObject; import com.github.kfcfans.powerjob.common.OmsConstant; import com.github.kfcfans.powerjob.common.utils.HttpUtils; import tech.powerjob.server.persistence.core.model.UserInfoDO; -import tech.powerjob.server.service.alarm.Alarm; +import tech.powerjob.server.common.module.Alarm; import tech.powerjob.server.extension.Alarmable; import lombok.extern.slf4j.Slf4j; import okhttp3.MediaType; diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/filter/DesignatedWorkerFilter.java b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/workerfilter/DesignatedWorkerFilter.java similarity index 89% rename from powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/filter/DesignatedWorkerFilter.java rename to powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/workerfilter/DesignatedWorkerFilter.java index 69fa8b62..cee11cfb 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/filter/DesignatedWorkerFilter.java +++ b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/workerfilter/DesignatedWorkerFilter.java @@ -1,9 +1,9 @@ -package tech.powerjob.server.remote.worker.cluster.filter; +package tech.powerjob.server.extension.impl.workerfilter; import tech.powerjob.server.common.SJ; import tech.powerjob.server.extension.WorkerFilter; import tech.powerjob.server.persistence.core.model.JobInfoDO; -import tech.powerjob.server.remote.worker.cluster.WorkerInfo; +import tech.powerjob.server.common.module.WorkerInfo; import com.google.common.collect.Sets; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/filter/DisconnectedWorkerFilter.java b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/workerfilter/DisconnectedWorkerFilter.java similarity index 85% rename from powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/filter/DisconnectedWorkerFilter.java rename to powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/workerfilter/DisconnectedWorkerFilter.java index 62b88101..6085ae38 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/filter/DisconnectedWorkerFilter.java +++ b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/workerfilter/DisconnectedWorkerFilter.java @@ -1,8 +1,8 @@ -package tech.powerjob.server.remote.worker.cluster.filter; +package tech.powerjob.server.extension.impl.workerfilter; import tech.powerjob.server.extension.WorkerFilter; import tech.powerjob.server.persistence.core.model.JobInfoDO; -import tech.powerjob.server.remote.worker.cluster.WorkerInfo; +import tech.powerjob.server.common.module.WorkerInfo; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/filter/SystemMetricsWorkerFilter.java b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/workerfilter/SystemMetricsWorkerFilter.java similarity index 88% rename from powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/filter/SystemMetricsWorkerFilter.java rename to powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/workerfilter/SystemMetricsWorkerFilter.java index 271447d3..bd624cbd 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/filter/SystemMetricsWorkerFilter.java +++ b/powerjob-server/powerjob-server-extension/src/main/java/tech/powerjob/server/extension/impl/workerfilter/SystemMetricsWorkerFilter.java @@ -1,9 +1,9 @@ -package tech.powerjob.server.remote.worker.cluster.filter; +package tech.powerjob.server.extension.impl.workerfilter; import com.github.kfcfans.powerjob.common.model.SystemMetrics; import tech.powerjob.server.extension.WorkerFilter; import tech.powerjob.server.persistence.core.model.JobInfoDO; -import tech.powerjob.server.remote.worker.cluster.WorkerInfo; +import tech.powerjob.server.common.module.WorkerInfo; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; diff --git a/powerjob-server/powerjob-server-remote/pom.xml b/powerjob-server/powerjob-server-remote/pom.xml index b18d379f..3258319a 100644 --- a/powerjob-server/powerjob-server-remote/pom.xml +++ b/powerjob-server/powerjob-server-remote/pom.xml @@ -23,6 +23,10 @@ tech.powerjob powerjob-server-common + + tech.powerjob + powerjob-server-extension + tech.powerjob powerjob-server-persistence diff --git a/powerjob-server/powerjob-server-starter/pom.xml b/powerjob-server/powerjob-server-starter/pom.xml index 7731e723..0d61a652 100644 --- a/powerjob-server/powerjob-server-starter/pom.xml +++ b/powerjob-server/powerjob-server-starter/pom.xml @@ -19,6 +19,10 @@ + + tech.powerjob + powerjob-server-extension + tech.powerjob powerjob-server-remote diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/extension/Alarmable.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/extension/Alarmable.java deleted file mode 100644 index cf52e850..00000000 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/extension/Alarmable.java +++ /dev/null @@ -1,24 +0,0 @@ -package tech.powerjob.server.extension; - -import tech.powerjob.server.persistence.core.model.UserInfoDO; -import tech.powerjob.server.service.alarm.Alarm; -import tech.powerjob.server.service.alarm.AlarmCenter; -import org.springframework.beans.factory.InitializingBean; - -import java.util.List; - -/** - * 报警接口 - * - * @author tjq - * @since 2020/4/19 - */ -public interface Alarmable extends InitializingBean { - - void onFailed(Alarm alarm, List targetUserList); - - @Override - default void afterPropertiesSet() throws Exception { - AlarmCenter.register(this); - } -} diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/extension/ServerElectionService.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/extension/ServerElectionService.java deleted file mode 100644 index f9059312..00000000 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/extension/ServerElectionService.java +++ /dev/null @@ -1,12 +0,0 @@ -package tech.powerjob.server.extension; - -/** - * 调度服务器选举服务,默认实现为先到先得,可自行接入 Zookeeper 等实现"负载均衡"策略 - * - * @author tjq - * @since 2021/2/9 - */ -public interface ServerElectionService { - - String elect(Long appId, String protocol, String currentServer); -} diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/DispatchService.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/DispatchService.java index 9c8f6675..8ff1d31c 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/DispatchService.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/DispatchService.java @@ -8,7 +8,7 @@ import tech.powerjob.server.persistence.core.model.JobInfoDO; import tech.powerjob.server.persistence.core.repository.InstanceInfoRepository; import tech.powerjob.server.remote.transport.TransportService; import tech.powerjob.server.remote.worker.cluster.WorkerClusterQueryService; -import tech.powerjob.server.remote.worker.cluster.WorkerInfo; +import tech.powerjob.server.common.module.WorkerInfo; import tech.powerjob.server.service.instance.InstanceManager; import tech.powerjob.server.service.instance.InstanceMetadataService; import tech.powerjob.server.service.lock.local.UseSegmentLock; diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/server/election/DefaultServerElectionService.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/server/election/ServerElectionService.java similarity index 97% rename from powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/server/election/DefaultServerElectionService.java rename to powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/server/election/ServerElectionService.java index 5ae92625..c5c175e2 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/server/election/DefaultServerElectionService.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/server/election/ServerElectionService.java @@ -8,7 +8,6 @@ import com.github.kfcfans.powerjob.common.Protocol; import com.github.kfcfans.powerjob.common.response.AskResponse; import com.github.kfcfans.powerjob.common.utils.JsonUtils; import tech.powerjob.server.extension.LockService; -import tech.powerjob.server.extension.ServerElectionService; import tech.powerjob.server.persistence.core.model.AppInfoDO; import tech.powerjob.server.persistence.core.repository.AppInfoRepository; import tech.powerjob.server.remote.transport.TransportService; @@ -36,7 +35,7 @@ import java.util.concurrent.TimeUnit; */ @Slf4j @Service -public class DefaultServerElectionService implements ServerElectionService { +public class ServerElectionService { @Resource private LockService lockService; @@ -52,7 +51,6 @@ public class DefaultServerElectionService implements ServerElectionService { private static final long PING_TIMEOUT_MS = 1000; private static final String SERVER_ELECT_LOCK = "server_elect_%d"; - @Override public String elect(Long appId, String protocol, String currentServer) { if (!accurate()) { // 如果是本机,就不需要查数据库那么复杂的操作了,直接返回成功 diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/ClusterStatusHolder.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/ClusterStatusHolder.java index 24a6cf08..fa55b439 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/ClusterStatusHolder.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/ClusterStatusHolder.java @@ -6,6 +6,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import lombok.extern.slf4j.Slf4j; import org.springframework.util.CollectionUtils; +import tech.powerjob.server.common.module.WorkerInfo; import java.util.Collections; import java.util.List; diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/WorkerClusterQueryService.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/WorkerClusterQueryService.java index 2c01c875..17c3337c 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/WorkerClusterQueryService.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/cluster/WorkerClusterQueryService.java @@ -1,6 +1,7 @@ package tech.powerjob.server.remote.worker.cluster; import com.github.kfcfans.powerjob.common.model.DeployedContainerInfo; +import tech.powerjob.server.common.module.WorkerInfo; import tech.powerjob.server.extension.WorkerFilter; import tech.powerjob.server.persistence.core.model.JobInfoDO; import tech.powerjob.server.remote.server.redirector.DesignateServer; diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/handler/WorkerRequestHandler.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/handler/WorkerRequestHandler.java index eb232a0c..1590b995 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/handler/WorkerRequestHandler.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/remote/worker/handler/WorkerRequestHandler.java @@ -2,7 +2,7 @@ package tech.powerjob.server.remote.worker.handler; import com.github.kfcfans.powerjob.common.InstanceStatus; import tech.powerjob.server.remote.worker.cluster.WorkerClusterQueryService; -import tech.powerjob.server.remote.worker.cluster.WorkerInfo; +import tech.powerjob.server.common.module.WorkerInfo; import com.github.kfcfans.powerjob.common.request.*; import com.github.kfcfans.powerjob.common.response.AskResponse; import com.github.kfcfans.powerjob.common.utils.JsonUtils; diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/ContainerService.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/ContainerService.java index fdc3eec2..218e5d29 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/ContainerService.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/ContainerService.java @@ -19,7 +19,7 @@ import tech.powerjob.server.persistence.core.repository.ContainerInfoRepository; import tech.powerjob.server.persistence.mongodb.GridFsManager; import tech.powerjob.server.remote.transport.starter.AkkaStarter; import tech.powerjob.server.remote.worker.cluster.WorkerClusterQueryService; -import tech.powerjob.server.remote.worker.cluster.WorkerInfo; +import tech.powerjob.server.common.module.WorkerInfo; import tech.powerjob.server.web.request.SaveContainerInfoRequest; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Lists; diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/AlarmCenter.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/AlarmCenter.java index 8e7ce3c0..94f0d216 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/AlarmCenter.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/AlarmCenter.java @@ -1,5 +1,8 @@ package tech.powerjob.server.service.alarm; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import tech.powerjob.server.common.module.Alarm; import tech.powerjob.server.extension.Alarmable; import tech.powerjob.server.persistence.core.model.UserInfoDO; import com.google.common.collect.Lists; @@ -17,20 +20,25 @@ import java.util.concurrent.*; * @since 2020/4/19 */ @Slf4j +@Component public class AlarmCenter { - private static final ExecutorService POOL; - private static final List BEANS = Lists.newLinkedList(); - private static final int THREAD_KEEP_ALIVE_TIME_M = 5; + private final ExecutorService POOL; + private final List BEANS = Lists.newLinkedList(); - static { + @Autowired + public AlarmCenter(List alarmables) { int cores = Runtime.getRuntime().availableProcessors(); ThreadFactory factory = new ThreadFactoryBuilder().setNameFormat("AlarmPool-%d").build(); - POOL = new ThreadPoolExecutor(cores, cores, THREAD_KEEP_ALIVE_TIME_M, TimeUnit.MINUTES, Queues.newLinkedBlockingQueue(), factory); + POOL = new ThreadPoolExecutor(cores, cores, 5, TimeUnit.MINUTES, Queues.newLinkedBlockingQueue(), factory); + + alarmables.forEach(bean -> { + BEANS.add(bean); + log.info("[AlarmCenter] bean(className={},obj={}) register to AlarmCenter successfully!", bean.getClass().getName(), bean); + }); } - - public static void alarmFailed(Alarm alarm, List targetUserList) { + public void alarmFailed(Alarm alarm, List targetUserList) { POOL.execute(() -> BEANS.forEach(alarmable -> { try { alarmable.onFailed(alarm, targetUserList); @@ -39,9 +47,4 @@ public class AlarmCenter { } })); } - - public static void register(Alarmable alarmable) { - BEANS.add(alarmable); - log.info("[AlarmCenter] bean(className={},obj={}) register to AlarmCenter successfully!", alarmable.getClass().getName(), alarmable); - } } diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/JobInstanceAlarm.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/JobInstanceAlarm.java index e4cd8f27..81e7eb48 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/JobInstanceAlarm.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/JobInstanceAlarm.java @@ -1,6 +1,7 @@ package tech.powerjob.server.service.alarm; import lombok.Data; +import tech.powerjob.server.common.module.Alarm; /** * 任务执行失败告警对象 diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/WorkflowInstanceAlarm.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/WorkflowInstanceAlarm.java index f01b658b..1d3f0e89 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/WorkflowInstanceAlarm.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/alarm/WorkflowInstanceAlarm.java @@ -2,6 +2,7 @@ package tech.powerjob.server.service.alarm; import com.github.kfcfans.powerjob.common.model.PEWorkflowDAG; import lombok.Data; +import tech.powerjob.server.common.module.Alarm; /** * 工作流执行失败告警对象 diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/instance/InstanceManager.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/instance/InstanceManager.java index a1353642..48960819 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/instance/InstanceManager.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/instance/InstanceManager.java @@ -35,6 +35,8 @@ import java.util.concurrent.TimeUnit; @Service public class InstanceManager { + @Resource + private AlarmCenter alarmCenter; @Resource private DispatchService dispatchService; @Resource @@ -179,7 +181,7 @@ public class InstanceManager { } List userList = SpringUtils.getBean(UserService.class).fetchNotifyUserList(jobInfo.getNotifyUserIds()); - AlarmCenter.alarmFailed(content, userList); + alarmCenter.alarmFailed(content, userList); } // 主动移除缓存,减小内存占用 diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/instance/InstanceService.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/instance/InstanceService.java index 49b3e48d..49c9b393 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/instance/InstanceService.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/instance/InstanceService.java @@ -17,7 +17,7 @@ import tech.powerjob.server.remote.DispatchService; import tech.powerjob.server.remote.server.redirector.DesignateServer; import tech.powerjob.server.remote.transport.TransportService; import tech.powerjob.server.remote.worker.cluster.WorkerClusterQueryService; -import tech.powerjob.server.remote.worker.cluster.WorkerInfo; +import tech.powerjob.server.common.module.WorkerInfo; import tech.powerjob.server.service.id.IdGenerateService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/workflow/WorkflowInstanceManager.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/workflow/WorkflowInstanceManager.java index 52ac2ee4..5a2be1df 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/workflow/WorkflowInstanceManager.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/service/workflow/WorkflowInstanceManager.java @@ -44,6 +44,8 @@ import static tech.powerjob.server.common.utils.WorkflowDAGUtils.isNotAllowSkipW @SuppressWarnings("squid:S1192") public class WorkflowInstanceManager { + @Resource + private AlarmCenter alarmCenter; @Resource private InstanceService instanceService; @Resource @@ -453,7 +455,7 @@ public class WorkflowInstanceManager { content.setResult(result); List userList = userService.fetchNotifyUserList(wfInfo.getNotifyUserIds()); - AlarmCenter.alarmFailed(content, userList); + alarmCenter.alarmFailed(content, userList); }); } catch (Exception ignore) { // ignore diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/controller/ServerController.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/controller/ServerController.java index fc5109d3..0b67e38f 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/controller/ServerController.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/controller/ServerController.java @@ -5,9 +5,9 @@ import com.alibaba.fastjson.JSONObject; import com.github.kfcfans.powerjob.common.response.ResultDTO; import com.github.kfcfans.powerjob.common.utils.CommonUtils; import com.github.kfcfans.powerjob.common.utils.NetUtils; -import tech.powerjob.server.extension.ServerElectionService; import tech.powerjob.server.persistence.core.model.AppInfoDO; import tech.powerjob.server.persistence.core.repository.AppInfoRepository; +import tech.powerjob.server.remote.server.election.ServerElectionService; import tech.powerjob.server.remote.transport.TransportService; import tech.powerjob.server.remote.worker.cluster.WorkerClusterQueryService; import org.springframework.web.bind.annotation.GetMapping; diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/controller/SystemInfoController.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/controller/SystemInfoController.java index ff806059..70ad03a5 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/controller/SystemInfoController.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/controller/SystemInfoController.java @@ -7,7 +7,7 @@ import tech.powerjob.server.common.constants.SwitchableStatus; import tech.powerjob.server.persistence.core.repository.InstanceInfoRepository; import tech.powerjob.server.persistence.core.repository.JobInfoRepository; import tech.powerjob.server.remote.worker.cluster.WorkerClusterQueryService; -import tech.powerjob.server.remote.worker.cluster.WorkerInfo; +import tech.powerjob.server.common.module.WorkerInfo; import tech.powerjob.server.web.response.SystemOverviewVO; import tech.powerjob.server.web.response.WorkerStatusVO; import lombok.extern.slf4j.Slf4j; diff --git a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/WorkerStatusVO.java b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/WorkerStatusVO.java index 42b0bd42..9a1cbc24 100644 --- a/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/WorkerStatusVO.java +++ b/powerjob-server/powerjob-server-starter/src/main/java/tech/powerjob/server/web/response/WorkerStatusVO.java @@ -1,7 +1,7 @@ package tech.powerjob.server.web.response; import com.github.kfcfans.powerjob.common.model.SystemMetrics; -import tech.powerjob.server.remote.worker.cluster.WorkerInfo; +import tech.powerjob.server.common.module.WorkerInfo; import lombok.Data; import lombok.NoArgsConstructor; diff --git a/powerjob-server/powerjob-server-starter/src/test/java/tech/powerjob/server/test/DingTalkTest.java b/powerjob-server/powerjob-server-starter/src/test/java/tech/powerjob/server/test/DingTalkTest.java index c237893a..8d5bc05a 100644 --- a/powerjob-server/powerjob-server-starter/src/test/java/tech/powerjob/server/test/DingTalkTest.java +++ b/powerjob-server/powerjob-server-starter/src/test/java/tech/powerjob/server/test/DingTalkTest.java @@ -1,6 +1,6 @@ package tech.powerjob.server.test; -import tech.powerjob.server.common.utils.DingTalkUtils; +import tech.powerjob.server.extension.impl.alram.DingTalkUtils; import com.google.common.collect.Lists; import org.junit.jupiter.api.Test;