Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

35 lines
873B

  1. # -*- coding: utf-8 -*-
  2. import time
  3. from threading import Thread
  4. from traceback import format_exc
  5. from loguru import logger
  6. from util.QueUtil import get_block_queue
  7. '''
  8. 问题反馈线程
  9. '''
  10. class FeedbackThread(Thread):
  11. __slots__ = ('__fb_queue', '__mq')
  12. def __init__(self, fb_queue, mq):
  13. super().__init__()
  14. self.__fb_queue = fb_queue
  15. self.__mq = mq
  16. def run(self):
  17. logger.info("启动反馈线程")
  18. fb_queue, mq = self.__fb_queue, self.__mq
  19. while True:
  20. try:
  21. fb = get_block_queue(fb_queue)
  22. if fb is not None and len(fb) > 0:
  23. mq.publish(fb)
  24. else:
  25. time.sleep(1)
  26. except Exception:
  27. logger.error("反馈异常:{}", format_exc())
  28. logger.info("反馈线程执行完成")