本文整理汇总了Python中queue.PriorityQueue.join方法的典型用法代码示例。如果您正苦于以下问题:Python PriorityQueue.join方法的具体用法?Python PriorityQueue.join怎么用?Python PriorityQueue.join使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类queue.PriorityQueue
的用法示例。
在下文中一共展示了PriorityQueue.join方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Background
# 需要导入模块: from queue import PriorityQueue [as 别名]
# 或者: from queue.PriorityQueue import join [as 别名]
class Background(object):
def __init__(self, slave_count=1):
self.slave_count = slave_count
self.slaves = []
self.jobs = PriorityQueue()
def start(self):
for i in range(self.slave_count):
t = Thread(target=self._run, daemon=True)
t.start()
self.slaves.append(t)
def stop(self):
self.jobs.join()
def _run(self):
while True:
job = self.jobs.get()[-1]
try:
job()
except Exception as e:
logging.exception(e)
finally:
self.jobs.task_done()
def action(self, job, rank=0):
self.jobs.put((rank, datetime.utcnow(), str(uuid4()), job))
def function(self, job, callback, rank=0):
@wraps(job)
def inner():
self.action(partial(callback, job()), rank=rank)
return self.action(inner, rank=rank)