diff options
-rw-r--r-- | Code/get_mapped_data.py | 40 |
1 files changed, 31 insertions, 9 deletions
diff --git a/Code/get_mapped_data.py b/Code/get_mapped_data.py index b718319..9ad1093 100644 --- a/Code/get_mapped_data.py +++ b/Code/get_mapped_data.py @@ -1,19 +1,41 @@ -from configure import MAPPED_RDATA_DIR, UPDATE_NETWORK_LOG_FILE +from configure import MAPPED_RDATA_DIR from configure import REDIS_CHANNEL from log import write_log_file import redis # install redis on Ubuntu using this command: sudo apt install python3-redis +from redis.retry import Retry +from redis.backoff import ExponentialBackoff import json import os +import socket +import time redis_password = os.getenv('REDIS_PASSWORD', '123456') redis_host = os.getenv('REDIS_HOST', '127.0.0.1') -r = redis.Redis(host=redis_host, port=6379, password=redis_password, db=0) +print(f'{redis_host} {redis_password}') + +keepalive_options = { + socket.TCP_KEEPIDLE: 60, + socket.TCP_KEEPCNT: 5, + socket.TCP_KEEPINTVL: 10 + } + +r = redis.Redis(host=redis_host, port=6379, password=redis_password, db=0, socket_timeout=None, socket_keepalive=True, socket_keepalive_options=keepalive_options, retry=Retry(ExponentialBackoff(cap=10, base=1), 25), retry_on_error=[redis.exceptions.ConnectionError, redis.exceptions.TimeoutError]) +#r = redis.Redis(host=redis_host, port=6379, password=redis_password, db=0) pubsub = r.pubsub(ignore_subscribe_messages=True) -pubsub.subscribe(REDIS_CHANNEL) -for message in pubsub.listen(): - quant_data = json.loads(message['data']) - filename = os.path.join(MAPPED_RDATA_DIR, quant_data['filename']) - write_log_file('[get_mapped_data.py] Save %s.' % (filename), UPDATE_NETWORK_LOG_FILE) - with open(filename, 'w') as f: - f.write(quant_data['data']) +while True: + try: + pubsub.subscribe(REDIS_CHANNEL) + print(f'Subscribed to {REDIS_CHANNEL}') + print('Listen ...') + for message in pubsub.listen(): + quant_data = json.loads(message['data']) + filename = os.path.join(MAPPED_RDATA_DIR, quant_data['filename']) + if 'quant' in filename: + write_log_file('[get_mapped_data.py] Save %s.' % (filename), 'LOG.txt') + with open(filename, 'w') as f: + f.write(quant_data['data']) + except Exception as e: + print(f'{e}') + time.sleep(60) + continue |