ChSpeedCalc.py 964 B

1234567891011121314151617181920212223242526272829303132
  1. from .ChannelCalc import ChannelCalc, detail_paths
  2. from .algorithm import calc_chspeed
  3. from .DataStream import EChPosmap as pos_map
  4. from .ChannelReader import ChannelReader
  5. import time as time
  6. import json
  7. import redis
  8. import logging
  9. logger = logging.getLogger('ChSpeedCalc')
  10. class ChSpeedCalc(ChannelCalc):
  11. def _calc_handler(self, rclient):
  12. logger.debug('_calc_handler')
  13. reader = self._reader()
  14. end_time = int(time.time() - 86400)
  15. period = 300
  16. days, start_time, end_time = self.calc_time(reader, end_time - period, end_time)
  17. day_stamp = days[0]
  18. tuple_pathes = reader.many_tuple_path(days, card_types=set([4, 5, 6]))
  19. gen = detail_paths(reader, tuple_pathes, days)
  20. mamounts = dict()
  21. for _name, _card_type, _spec, _data in gen:
  22. speed = calc_chspeed(_data, pos_map, start_time - day_stamp, end_time - day_stamp)
  23. logger.debug("_name")
  24. return 0.1