|
|
|
@ -23,8 +23,6 @@ import org.springframework.beans.factory.annotation.Value; |
|
|
|
import org.springframework.context.annotation.Lazy; |
|
|
|
import org.springframework.scheduling.annotation.Scheduled; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import org.thingsboard.server.common.msg.rule.engine.DeviceEdgeUpdateMsg; |
|
|
|
import org.thingsboard.server.common.msg.rule.engine.DeviceNameOrTypeUpdateMsg; |
|
|
|
import org.thingsboard.server.cluster.TbClusterService; |
|
|
|
import org.thingsboard.server.common.data.ApiUsageState; |
|
|
|
import org.thingsboard.server.common.data.Device; |
|
|
|
@ -57,6 +55,8 @@ import org.thingsboard.server.common.msg.plugin.ComponentLifecycleMsg; |
|
|
|
import org.thingsboard.server.common.msg.queue.ServiceType; |
|
|
|
import org.thingsboard.server.common.msg.queue.TopicPartitionInfo; |
|
|
|
import org.thingsboard.server.common.msg.rpc.FromDeviceRpcResponse; |
|
|
|
import org.thingsboard.server.common.msg.rule.engine.DeviceEdgeUpdateMsg; |
|
|
|
import org.thingsboard.server.common.msg.rule.engine.DeviceNameOrTypeUpdateMsg; |
|
|
|
import org.thingsboard.server.gen.transport.TransportProtos; |
|
|
|
import org.thingsboard.server.gen.transport.TransportProtos.FromDeviceRPCResponseProto; |
|
|
|
import org.thingsboard.server.gen.transport.TransportProtos.ToCoreMsg; |
|
|
|
@ -81,6 +81,8 @@ import java.util.Set; |
|
|
|
import java.util.UUID; |
|
|
|
import java.util.concurrent.atomic.AtomicInteger; |
|
|
|
|
|
|
|
import static org.thingsboard.server.service.queue.ProtoUtils.toProto; |
|
|
|
|
|
|
|
@Service |
|
|
|
@Slf4j |
|
|
|
@RequiredArgsConstructor |
|
|
|
@ -132,8 +134,7 @@ public class DefaultTbClusterService implements TbClusterService { |
|
|
|
public void pushMsgToCore(ToDeviceActorNotificationMsg msg, TbQueueCallback callback) { |
|
|
|
TopicPartitionInfo tpi = partitionService.resolve(ServiceType.TB_CORE, msg.getTenantId(), msg.getDeviceId()); |
|
|
|
log.trace("PUSHING msg: {} to:{}", msg, tpi); |
|
|
|
TransportProtos.ToDeviceActorNotificationMsgProto proto = ProtoUtils.toProto(msg); |
|
|
|
ToCoreMsg toCoreMsg = ToCoreMsg.newBuilder().setToDeviceActorNotification(proto).build(); |
|
|
|
ToCoreMsg toCoreMsg = ToCoreMsg.newBuilder().setToDeviceActorNotification(toProto(msg)).build(); |
|
|
|
producerProvider.getTbCoreMsgProducer().send(tpi, new TbProtoQueueMsg<>(msg.getDeviceId().getId(), toCoreMsg), callback); |
|
|
|
toCoreMsgs.incrementAndGet(); |
|
|
|
} |
|
|
|
@ -362,24 +363,22 @@ public class DefaultTbClusterService implements TbClusterService { |
|
|
|
@Override |
|
|
|
public void onEdgeEventUpdate(TenantId tenantId, EdgeId edgeId) { |
|
|
|
log.trace("[{}] Processing edge {} event update ", tenantId, edgeId); |
|
|
|
TransportProtos.EdgeEventUpdateMsgProto edgeEventUpdateMsgProto = ProtoUtils.toProto(new EdgeEventUpdateMsg(tenantId, edgeId)); |
|
|
|
ToCoreNotificationMsg toCoreMsg = ToCoreNotificationMsg.newBuilder().setEdgeEventUpdate(edgeEventUpdateMsgProto).build(); |
|
|
|
EdgeEventUpdateMsg msg = new EdgeEventUpdateMsg(tenantId, edgeId); |
|
|
|
ToCoreNotificationMsg toCoreMsg = ToCoreNotificationMsg.newBuilder().setEdgeEventUpdate(toProto(msg)).build(); |
|
|
|
pushEdgeSyncMsgToCore(edgeId, toCoreMsg); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void pushEdgeSyncRequestToCore(ToEdgeSyncRequest toEdgeSyncRequest) { |
|
|
|
log.trace("[{}] Processing edge sync request {} ", toEdgeSyncRequest.getTenantId(), toEdgeSyncRequest); |
|
|
|
TransportProtos.ToEdgeSyncRequestMsgProto toEdgeSyncRequestMsgProto = ProtoUtils.toProto(toEdgeSyncRequest); |
|
|
|
ToCoreNotificationMsg toCoreMsg = ToCoreNotificationMsg.newBuilder().setToEdgeSyncRequest(toEdgeSyncRequestMsgProto).build(); |
|
|
|
ToCoreNotificationMsg toCoreMsg = ToCoreNotificationMsg.newBuilder().setToEdgeSyncRequest(toProto(toEdgeSyncRequest)).build(); |
|
|
|
pushEdgeSyncMsgToCore(toEdgeSyncRequest.getEdgeId(), toCoreMsg); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void pushEdgeSyncResponseToCore(FromEdgeSyncResponse fromEdgeSyncResponse) { |
|
|
|
log.trace("[{}] Processing edge sync response {}", fromEdgeSyncResponse.getTenantId(), fromEdgeSyncResponse); |
|
|
|
TransportProtos.FromEdgeSyncResponseMsgProto fromEdgeSyncResponseMsgProto = ProtoUtils.toProto(fromEdgeSyncResponse); |
|
|
|
ToCoreNotificationMsg toCoreMsg = ToCoreNotificationMsg.newBuilder().setFromEdgeSyncResponse(fromEdgeSyncResponseMsgProto).build(); |
|
|
|
ToCoreNotificationMsg toCoreMsg = ToCoreNotificationMsg.newBuilder().setFromEdgeSyncResponse(toProto(fromEdgeSyncResponse)).build(); |
|
|
|
pushEdgeSyncMsgToCore(fromEdgeSyncResponse.getEdgeId(), toCoreMsg); |
|
|
|
} |
|
|
|
|
|
|
|
@ -394,7 +393,7 @@ public class DefaultTbClusterService implements TbClusterService { |
|
|
|
} |
|
|
|
|
|
|
|
private void broadcast(ComponentLifecycleMsg msg) { |
|
|
|
TransportProtos.ComponentLifecycleMsgProto componentLifecycleMsgProto = ProtoUtils.toProto(msg); |
|
|
|
TransportProtos.ComponentLifecycleMsgProto componentLifecycleMsgProto = toProto(msg); |
|
|
|
TbQueueProducer<TbProtoQueueMsg<ToRuleEngineNotificationMsg>> toRuleEngineProducer = producerProvider.getRuleEngineNotificationsMsgProducer(); |
|
|
|
Set<String> tbRuleEngineServices = partitionService.getAllServiceIds(ServiceType.TB_RULE_ENGINE); |
|
|
|
EntityType entityType = msg.getEntityId().getEntityType(); |
|
|
|
|