从前面的 kafka 队列分析,可以发现规则引擎从 kafka 中消费到消息之后就会直接提交到规则链中。
public interface TbClusterService {
public void pushMsgToRuleEngine(TopicPartitionInfo var1, UUID var2, TransportProtos.ToRuleEngineMsg var3, TbQueueCallback var4);
public void pushMsgToRuleEngine(TenantId var1, EntityId var2, TbMsg var3, TbQueueCallback var4);
public void pushNotificationToTransport(String var1, TransportProtos.ToTransportMsg var2, TbQueueCallback var3);
public void pushNotificationToRuleEngine(String var1, FromDeviceRpcResponse var2, TbQueueCallback var3);
pushMsgToRuleEngine 方法会调用原生的队列方法发送消息。
this.producerProvider.getRuleEngineMsgProducer().send(tpi, new TbProtoQueueMsg(tbMsg.getId(), (GeneratedMessageV3)msg), callback)