@ -17,6 +17,7 @@ package org.thingsboard.server.queue.provider;
import lombok.extern.slf4j.Slf4j ;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression ;
import org.springframework.scheduling.annotation.Scheduled ;
import org.springframework.stereotype.Component ;
import org.thingsboard.server.common.msg.queue.ServiceType ;
import org.thingsboard.server.gen.js.JsInvokeProtos ;
@ -28,6 +29,7 @@ import org.thingsboard.server.queue.common.TbProtoJsQueueMsg;
import org.thingsboard.server.queue.common.TbProtoQueueMsg ;
import org.thingsboard.server.queue.discovery.PartitionService ;
import org.thingsboard.server.queue.discovery.TbServiceInfoProvider ;
import org.thingsboard.server.queue.memory.InMemoryStorage ;
import org.thingsboard.server.queue.memory.InMemoryTbQueueConsumer ;
import org.thingsboard.server.queue.memory.InMemoryTbQueueProducer ;
import org.thingsboard.server.queue.settings.TbQueueCoreSettings ;
@ -47,6 +49,7 @@ public class InMemoryMonolithQueueFactory implements TbCoreQueueFactory, TbRuleE
private final TbQueueRuleEngineSettings ruleEngineSettings ;
private final TbQueueTransportApiSettings transportApiSettings ;
private final TbQueueTransportNotificationSettings transportNotificationSettings ;
private final InMemoryStorage storage ;
public InMemoryMonolithQueueFactory ( PartitionService partitionService , TbQueueCoreSettings coreSettings ,
TbQueueRuleEngineSettings ruleEngineSettings ,
@ -59,6 +62,7 @@ public class InMemoryMonolithQueueFactory implements TbCoreQueueFactory, TbRuleE
this . ruleEngineSettings = ruleEngineSettings ;
this . transportApiSettings = transportApiSettings ;
this . transportNotificationSettings = transportNotificationSettings ;
this . storage = InMemoryStorage . getInstance ( ) ;
}
@Override
@ -120,4 +124,9 @@ public class InMemoryMonolithQueueFactory implements TbCoreQueueFactory, TbRuleE
public TbQueueRequestTemplate < TbProtoJsQueueMsg < JsInvokeProtos . RemoteJsRequest > , TbProtoQueueMsg < JsInvokeProtos . RemoteJsResponse > > createRemoteJsRequestTemplate ( ) {
return null ;
}
@Scheduled ( fixedRateString = "${queue.in_memory.stats.print-interval-ms:60000}" )
private void printInMemoryStats ( ) {
storage . printStats ( ) ;
}
}