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.UserInfoDO;
|
||||
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.TransportService;
|
||||
import tech.powerjob.server.remote.worker.WorkerClusterQueryService;
|
||||
@ -41,7 +42,7 @@ import java.util.concurrent.TimeUnit;
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class InstanceManager {
|
||||
public class InstanceManager implements TransportServiceAware {
|
||||
|
||||
private final AlarmCenter alarmCenter;
|
||||
|
||||
@ -53,10 +54,13 @@ public class InstanceManager {
|
||||
|
||||
private final WorkflowInstanceManager workflowInstanceManager;
|
||||
|
||||
private final TransportService transportService;
|
||||
|
||||
private final WorkerClusterQueryService workerClusterQueryService;
|
||||
|
||||
/**
|
||||
* 基础组件通过 aware 注入,避免循环依赖
|
||||
*/
|
||||
private TransportService transportService;
|
||||
|
||||
/**
|
||||
* 更新任务状态
|
||||
* ********************************************
|
||||
@ -229,4 +233,8 @@ public class InstanceManager {
|
||||
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.Handler;
|
||||
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.redirector.RemoteProcessReq;
|
||||
import tech.powerjob.server.remote.server.redirector.RemoteRequestProcessor;
|
||||
@ -24,13 +25,9 @@ import static tech.powerjob.common.RemoteConstant.*;
|
||||
@Slf4j
|
||||
@Component
|
||||
@Actor(path = S4S_PATH)
|
||||
public class FriendActor {
|
||||
public class FriendActor implements TransportServiceAware {
|
||||
|
||||
private final TransportService transportService;
|
||||
|
||||
public FriendActor(TransportService transportService) {
|
||||
this.transportService = transportService;
|
||||
}
|
||||
private TransportService transportService;
|
||||
|
||||
/**
|
||||
* 处理存活检测的请求
|
||||
@ -54,4 +51,9 @@ public class FriendActor {
|
||||
}
|
||||
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-request-size=209715200
|
||||
|
||||
# temporary skip circular references check
|
||||
spring.main.allow-circular-references=true
|
||||
|
||||
###### PowerJob transporter configuration ######
|
||||
oms.transporter.active.protocols=AKKA,HTTP
|
||||
oms.transporter.main.protocol=HTTP
|
||||
|
Loading…
x
Reference in New Issue
Block a user