ogn-python/app/collect/gateway.py

25 wiersze
1.3 KiB
Python

from datetime import datetime
from flask import current_app
from app import redis_client
from app.gateway.message_handling import sender_position_csv_strings_to_db, receiver_position_csv_strings_to_db, receiver_status_csv_strings_to_db
def transfer_from_redis_to_database():
def unmapping(string):
return string[0].decode('utf-8')
receiver_status_data = list(map(unmapping, redis_client.zpopmin('receiver_status', 100000)))
receiver_position_data = list(map(unmapping, redis_client.zpopmin('receiver_position', 100000)))
sender_status_data = list(map(unmapping, redis_client.zpopmin('sender_status', 100000)))
sender_position_data = list(map(unmapping, redis_client.zpopmin('sender_position', 100000)))
receiver_status_csv_strings_to_db(lines=receiver_status_data)
receiver_position_csv_strings_to_db(lines=receiver_position_data)
sender_position_csv_strings_to_db(lines=sender_position_data)
current_app.logger.debug(f"transfer_from_redis_to_database: rx_stat: {len(receiver_status_data):6d}\trx_pos: {len(receiver_position_data):6d}\ttx_stat: {len(sender_status_data):6d}\ttx_pos: {len(sender_position_data):6d}")
finish_message = f"Database: {len(receiver_status_data)+len(receiver_position_data)+len(sender_status_data)+len(sender_position_data)} inserted"
return finish_message