def run(self):
logging.debug("{} thread {} started".format(self.DESCR, self.name))
while True:
try:
task = self.tasks_q.get(block=True, timeout=0.1)
except queue.Empty:
break
try:
data = self.do_task(task)
if data:
with self.lock:
self.save_data(task, data)
except Exception as e:
if isinstance(e, ARouteServerError):
if str(e):
logging.error(
"{} thread {} error: {}".format(
self.DESCR, self.name,
str(e)
)
)
else:
logging.error(
"{} thread {} unhandled exception: {}".format(
self.DESCR, self.name,
str(e) if str(e) else "error unknown"
),
exc_info=True
)
try:
self.errors_q.put_nowait(True)
except queue.Full:
pass
self.tasks_q.task_done()
logging.debug("{} thread {} stopped".format(
self.DESCR, self.name))
评论列表
文章目录