1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import redis
- import time as time
- import logging
- import json
- from .DataStream import span_days
- import logging
- logger = logging.getLogger('CalcBase')
- class CalcBase(object):
- def __init__(self):
- self._mQuit = False
- self._mRHost = ''
- self._mRPort = 6379
- def set_redis(self, rhost, rport):
- self._mRHost = rhost
- self._mRPort = rport
- def stop(self):
- self._mquit = True
- def _calc_handler(self, rclient):
- return 1
- def _reader(self):
- return None
- def run(self):
- def redis_client():
- pool = redis.ConnectionPool(host=self._mRHost, port=self._mRPort)
- client = redis.Redis(connection_pool=pool)
- return client
- client = None
- sleep_time = 1
- while self._mQuit == False:
- try:
- if client is None:
- client = redis_client()
- sleep_time = self._calc_handler(client)
- except redis.RedisError as ex:
- logger.error(ex)
- except Exception as ex:
- logger.error(ex)
- finally:
- time.sleep(sleep_time)
- def calc_time(self, reader, start_time: int, end_time: int):
- end_time = reader.near_stamp(end_time, False)
- if end_time is None:
- raise Exception('end_time data is empty')
- start_time = reader.near_stamp(start_time, True)
- if start_time is None:
- raise Exception('start_time data is empty')
- strtime = lambda t: time.strftime('%d-%H:%M:%S', time.localtime(t))
- logger.debug("near_stamp start_time %s end_time=%s", strtime(start_time), strtime(end_time))
- if start_time >= end_time:
- raise Exception('start_time >= endtime')
- days = span_days(start_time, end_time)
- strtime = lambda t: time.strftime('%d-%H:%M:%S', time.localtime(t))
- sdays = [strtime(day) for day in days]
- logger.debug(sdays)
- return days, start_time, end_time
|