def run(self):
"""Run any background task scheduled for execution."""
while self.__running:
try:
try:
# A brief timeout here is necessary
# to reduce CPU usage and to ensure
# that shutdown doesn't wait forever
# for a new task to appear.
task, args, kwargs = \
self.__q.get(timeout=.5)
except queue.Empty:
continue
task(*args, **kwargs)
if hasattr(self.__q, "task_done"):
# Task is done; mark it so.
self.__q.task_done()
except:
self.bus.log("Failure encountered executing "
"background task {0!r}.".format(self),
traceback=True)
评论列表
文章目录