51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
from time import time
|
|
from traceback import format_exc
|
|
|
|
from loguru import logger
|
|
|
|
from enums.ExceptionEnum import ExceptionType
|
|
from exception.CustomerException import ServiceException
|
|
|
|
|
|
def get_no_block_queue(queue):
|
|
try:
|
|
return queue.get(block=False)
|
|
except Exception:
|
|
return None
|
|
|
|
|
|
def put_queue(queue, result, block=True, timeout=None, is_ex=False):
|
|
try:
|
|
queue.put(result, block=block, timeout=timeout)
|
|
except Exception:
|
|
logger.error("添加队列异常:{}", format_exc())
|
|
if is_ex:
|
|
raise ServiceException(ExceptionType.SERVICE_INNER_EXCEPTION.value[0],
|
|
ExceptionType.SERVICE_INNER_EXCEPTION.value[1])
|
|
|
|
|
|
def put_queue_result(queue, result, block=True, timeout=None):
|
|
try:
|
|
queue.put(result, block=block, timeout=timeout)
|
|
return True
|
|
except Exception:
|
|
logger.error("添加队列异常:{}", format_exc())
|
|
return False
|
|
|
|
|
|
def clear_queue(queue):
|
|
c_time = time()
|
|
while True:
|
|
if time() - c_time > 120:
|
|
logger.error("清空队列失败, 情况队列超时!")
|
|
raise ServiceException(ExceptionType.SERVICE_INNER_EXCEPTION.value[0],
|
|
ExceptionType.SERVICE_INNER_EXCEPTION.value[1])
|
|
get_no_block_queue(queue)
|
|
if queue.empty() or queue.qsize() == 0:
|
|
break
|
|
# try:
|
|
# queue.get_nowait()
|
|
# except Exception:
|
|
# break
|