mirror of
https://github.com/PowerJob/PowerJob.git
synced 2025-07-17 00:00:04 +08:00
feat: remove all circular-references by aware
This commit is contained in:
parent
5ddaa33f47
commit
5985c04997
@ -22,6 +22,7 @@ import tech.powerjob.server.persistence.remote.model.InstanceInfoDO;
|
|||||||
import tech.powerjob.server.persistence.remote.model.JobInfoDO;
|
import tech.powerjob.server.persistence.remote.model.JobInfoDO;
|
||||||
import tech.powerjob.server.persistence.remote.model.UserInfoDO;
|
import tech.powerjob.server.persistence.remote.model.UserInfoDO;
|
||||||
import tech.powerjob.server.persistence.remote.repository.InstanceInfoRepository;
|
import tech.powerjob.server.persistence.remote.repository.InstanceInfoRepository;
|
||||||
|
import tech.powerjob.server.remote.aware.TransportServiceAware;
|
||||||
import tech.powerjob.server.remote.transporter.impl.ServerURLFactory;
|
import tech.powerjob.server.remote.transporter.impl.ServerURLFactory;
|
||||||
import tech.powerjob.server.remote.transporter.TransportService;
|
import tech.powerjob.server.remote.transporter.TransportService;
|
||||||
import tech.powerjob.server.remote.worker.WorkerClusterQueryService;
|
import tech.powerjob.server.remote.worker.WorkerClusterQueryService;
|
||||||
@ -41,7 +42,7 @@ import java.util.concurrent.TimeUnit;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class InstanceManager {
|
public class InstanceManager implements TransportServiceAware {
|
||||||
|
|
||||||
private final AlarmCenter alarmCenter;
|
private final AlarmCenter alarmCenter;
|
||||||
|
|
||||||
@ -53,10 +54,13 @@ public class InstanceManager {
|
|||||||
|
|
||||||
private final WorkflowInstanceManager workflowInstanceManager;
|
private final WorkflowInstanceManager workflowInstanceManager;
|
||||||
|
|
||||||
private final TransportService transportService;
|
|
||||||
|
|
||||||
private final WorkerClusterQueryService workerClusterQueryService;
|
private final WorkerClusterQueryService workerClusterQueryService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 基础组件通过 aware 注入,避免循环依赖
|
||||||
|
*/
|
||||||
|
private TransportService transportService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新任务状态
|
* 更新任务状态
|
||||||
* ********************************************
|
* ********************************************
|
||||||
@ -229,4 +233,8 @@ public class InstanceManager {
|
|||||||
alarmCenter.alarmFailed(content, userList);
|
alarmCenter.alarmFailed(content, userList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setTransportService(TransportService transportService) {
|
||||||
|
this.transportService = transportService;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,15 @@
|
|||||||
|
package tech.powerjob.server.remote.aware;
|
||||||
|
|
||||||
|
import tech.powerjob.server.common.aware.PowerJobAware;
|
||||||
|
import tech.powerjob.server.remote.transporter.TransportService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TransportServiceAware
|
||||||
|
*
|
||||||
|
* @author tjq
|
||||||
|
* @since 2023/3/4
|
||||||
|
*/
|
||||||
|
public interface TransportServiceAware extends PowerJobAware {
|
||||||
|
|
||||||
|
void setTransportService(TransportService transportService);
|
||||||
|
}
|
@ -8,6 +8,7 @@ import tech.powerjob.common.serialize.JsonUtils;
|
|||||||
import tech.powerjob.remote.framework.actor.Actor;
|
import tech.powerjob.remote.framework.actor.Actor;
|
||||||
import tech.powerjob.remote.framework.actor.Handler;
|
import tech.powerjob.remote.framework.actor.Handler;
|
||||||
import tech.powerjob.remote.framework.actor.ProcessType;
|
import tech.powerjob.remote.framework.actor.ProcessType;
|
||||||
|
import tech.powerjob.server.remote.aware.TransportServiceAware;
|
||||||
import tech.powerjob.server.remote.server.election.Ping;
|
import tech.powerjob.server.remote.server.election.Ping;
|
||||||
import tech.powerjob.server.remote.server.redirector.RemoteProcessReq;
|
import tech.powerjob.server.remote.server.redirector.RemoteProcessReq;
|
||||||
import tech.powerjob.server.remote.server.redirector.RemoteRequestProcessor;
|
import tech.powerjob.server.remote.server.redirector.RemoteRequestProcessor;
|
||||||
@ -24,13 +25,9 @@ import static tech.powerjob.common.RemoteConstant.*;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
@Actor(path = S4S_PATH)
|
@Actor(path = S4S_PATH)
|
||||||
public class FriendActor {
|
public class FriendActor implements TransportServiceAware {
|
||||||
|
|
||||||
private final TransportService transportService;
|
private TransportService transportService;
|
||||||
|
|
||||||
public FriendActor(TransportService transportService) {
|
|
||||||
this.transportService = transportService;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理存活检测的请求
|
* 处理存活检测的请求
|
||||||
@ -54,4 +51,9 @@ public class FriendActor {
|
|||||||
}
|
}
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setTransportService(TransportService transportService) {
|
||||||
|
this.transportService = transportService;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,27 @@
|
|||||||
|
package tech.powerjob.server.support;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import tech.powerjob.server.remote.aware.TransportServiceAware;
|
||||||
|
import tech.powerjob.server.remote.transporter.TransportService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TransportServiceAwareProcessor
|
||||||
|
*
|
||||||
|
* @author tjq
|
||||||
|
* @since 2023/3/4
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class TransportServiceAwareProcessor {
|
||||||
|
|
||||||
|
public TransportServiceAwareProcessor(TransportService transportService, List<TransportServiceAware> transportServiceAwares) {
|
||||||
|
log.info("[TransportServiceAwareProcessor] current transportService: {}", transportService);
|
||||||
|
transportServiceAwares.forEach(aware -> {
|
||||||
|
aware.setTransportService(transportService);
|
||||||
|
log.info("[TransportServiceAwareProcessor] set transportService for: {} successfully", aware);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@ -13,9 +13,6 @@ spring.servlet.multipart.file-size-threshold=0
|
|||||||
spring.servlet.multipart.max-file-size=209715200
|
spring.servlet.multipart.max-file-size=209715200
|
||||||
spring.servlet.multipart.max-request-size=209715200
|
spring.servlet.multipart.max-request-size=209715200
|
||||||
|
|
||||||
# temporary skip circular references check
|
|
||||||
spring.main.allow-circular-references=true
|
|
||||||
|
|
||||||
###### PowerJob transporter configuration ######
|
###### PowerJob transporter configuration ######
|
||||||
oms.transporter.active.protocols=AKKA,HTTP
|
oms.transporter.active.protocols=AKKA,HTTP
|
||||||
oms.transporter.main.protocol=HTTP
|
oms.transporter.main.protocol=HTTP
|
||||||
|
Loading…
x
Reference in New Issue
Block a user