1
0
mirror of https://github.com/thingsboard/thingsboard-gateway synced 2025-10-26 22:31:42 +08:00

Moved saving data to storage to separated thread

This commit is contained in:
zbeacon
2021-09-06 16:26:11 +03:00
parent 9210e2a7eb
commit 64c3cfbfea

View File

@@ -101,6 +101,9 @@ class TBGatewayService:
self.remote_handler = TBLoggerHandler(self)
self.main_handler.setTarget(self.remote_handler)
self._default_connectors = DEFAULT_CONNECTORS
self.__converted_data_queue = Queue()
self.__save_converted_data_thread = Thread(name="Save converted data", daemon=True, target=self.__send_to_storage)
self.__save_converted_data_thread.start()
self._implemented_connectors = {}
self._event_storage_types = {
"memory": MemoryEventStorage,
@@ -363,6 +366,13 @@ class TBGatewayService:
self._connect_with_connectors()
def send_to_storage(self, connector_name, data):
self.__converted_data_queue.put((connector_name, data), False)
def __send_to_storage(self):
while True:
try:
if not self.__converted_data_queue.empty():
connector_name, data = self.__converted_data_queue.get(False)
if not connector_name == self.name:
if not TBUtility.validate_converted_data(data):
log.error("Data from %s connector is invalid.", connector_name)
@@ -396,6 +406,8 @@ class TBGatewayService:
log.error('Data from the device "%s" cannot be saved, connector name is %s.',
data["deviceName"],
connector_name)
except Exception as e:
log.error(e)
def check_size(self, size, devices_data_in_event_pack):
if size >= 48000: