|
@@ -86,6 +86,7 @@ public class AliBridgeServer extends AbstractClusterUniqueTask<AliBridgeServer>
|
|
|
this.status=params.getState();
|
|
this.status=params.getState();
|
|
|
verify(params);
|
|
verify(params);
|
|
|
refreshBridgeConfig(params);
|
|
refreshBridgeConfig(params);
|
|
|
|
|
+ params.setDeviceName(bridgeConfigManager.getDeviceName());
|
|
|
bootstrap=new DefaultBridgeBootstrap(params.getId(),bridgeConfigManager);
|
|
bootstrap=new DefaultBridgeBootstrap(params.getId(),bridgeConfigManager);
|
|
|
if(broadcast){
|
|
if(broadcast){
|
|
|
//发送广播消息
|
|
//发送广播消息
|
|
@@ -93,11 +94,11 @@ public class AliBridgeServer extends AbstractClusterUniqueTask<AliBridgeServer>
|
|
|
}
|
|
}
|
|
|
//非主节点、非运行状态、已启动
|
|
//非主节点、非运行状态、已启动
|
|
|
if(isReplica()||!BridgeStatus.running.equals(status)||start.get()){
|
|
if(isReplica()||!BridgeStatus.running.equals(status)||start.get()){
|
|
|
- return Mono.empty();
|
|
|
|
|
|
|
+ return Mono.just(this);
|
|
|
}
|
|
}
|
|
|
if (start.compareAndSet(false, true)) {
|
|
if (start.compareAndSet(false, true)) {
|
|
|
if(bootstrap.isBridgeConnected()){
|
|
if(bootstrap.isBridgeConnected()){
|
|
|
- return Mono.empty();
|
|
|
|
|
|
|
+ return Mono.just(this);
|
|
|
}
|
|
}
|
|
|
return Mono.fromRunnable(()->{
|
|
return Mono.fromRunnable(()->{
|
|
|
bootstrap.bootstrap(new DownlinkChannelHandler() {
|
|
bootstrap.bootstrap(new DownlinkChannelHandler() {
|
|
@@ -115,7 +116,6 @@ public class AliBridgeServer extends AbstractClusterUniqueTask<AliBridgeServer>
|
|
|
});
|
|
});
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
- params.setDeviceName(bridgeConfigManager.getDeviceName());
|
|
|
|
|
return Mono.just(this);
|
|
return Mono.just(this);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -245,7 +245,7 @@ public class AliBridgeServer extends AbstractClusterUniqueTask<AliBridgeServer>
|
|
|
|
|
|
|
|
public Mono<Void> delBridge(boolean broadcast) {
|
|
public Mono<Void> delBridge(boolean broadcast) {
|
|
|
return Mono.fromRunnable(()->{
|
|
return Mono.fromRunnable(()->{
|
|
|
- if(bootstrap!=null&&bootstrap.isBridgeConnected()){
|
|
|
|
|
|
|
+ if(bootstrap!=null&&isReplica()){
|
|
|
bootstrap.disconnectBridge();
|
|
bootstrap.disconnectBridge();
|
|
|
bootstrap=null;
|
|
bootstrap=null;
|
|
|
}
|
|
}
|
|
@@ -257,11 +257,9 @@ public class AliBridgeServer extends AbstractClusterUniqueTask<AliBridgeServer>
|
|
|
|
|
|
|
|
public Mono<Void> reconnect(boolean broadcast) {
|
|
public Mono<Void> reconnect(boolean broadcast) {
|
|
|
return Mono.fromRunnable(()->{
|
|
return Mono.fromRunnable(()->{
|
|
|
- if(bootstrap!=null){
|
|
|
|
|
- if(!isReplica()){
|
|
|
|
|
- bootstrap.reconnectBridge();
|
|
|
|
|
- channelMap.values().forEach(DefaultAliBridgeChannel::online);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if(bootstrap!=null&&!isReplica()){
|
|
|
|
|
+ bootstrap.reconnectBridge();
|
|
|
|
|
+ channelMap.values().forEach(DefaultAliBridgeChannel::online);
|
|
|
}
|
|
}
|
|
|
changeStatus(BridgeStatus.running,broadcast);
|
|
changeStatus(BridgeStatus.running,broadcast);
|
|
|
log.info("网桥[{}]重启成功",id);
|
|
log.info("网桥[{}]重启成功",id);
|
|
@@ -271,12 +269,11 @@ public class AliBridgeServer extends AbstractClusterUniqueTask<AliBridgeServer>
|
|
|
|
|
|
|
|
private void changeStatus(BridgeStatus status,boolean broadcast){
|
|
private void changeStatus(BridgeStatus status,boolean broadcast){
|
|
|
this.status=status;
|
|
this.status=status;
|
|
|
- if(isReplica()){
|
|
|
|
|
- if(broadcast){
|
|
|
|
|
- getClusterOperationTopic()
|
|
|
|
|
- .publish(Mono.just(status)).subscribe();
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if(broadcast){
|
|
|
|
|
+ getClusterOperationTopic()
|
|
|
|
|
+ .publish(Mono.just(status)).subscribe();
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|