本文整理汇总了Python中queue.PriorityQueue.task_done方法的典型用法代码示例。如果您正苦于以下问题:Python PriorityQueue.task_done方法的具体用法?Python PriorityQueue.task_done怎么用?Python PriorityQueue.task_done使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类queue.PriorityQueue
的用法示例。
在下文中一共展示了PriorityQueue.task_done方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Background
# 需要导入模块: from queue import PriorityQueue [as 别名]
# 或者: from queue.PriorityQueue import task_done [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)
示例2: range
# 需要导入模块: from queue import PriorityQueue [as 别名]
# 或者: from queue.PriorityQueue import task_done [as 别名]
str="abcdefghijk"
import random
#Queue
q=Queue(10)
for i in range(10):
q.put(random.choice(str))
print("size=",q.qsize())
while not q.empty():
print(q.get())
q.task_done()
#Lifo Queue
print("-"*10,"lifo_queue","-"*10)
lifoq=LifoQueue(10)
for i in range(10):
lifoq.put_nowait(random.choice(str))
while not lifoq.empty():
print(lifoq.get_nowait())
lifoq.task_done()
#Priority Queue
print("-"*10,"priority queue","-"*10)
pq=PriorityQueue(10)
for i in range(10):
pq.put_nowait(random.choice(str))
while not pq.empty():
print(pq.get_nowait())
pq.task_done()
示例3: task_done
# 需要导入模块: from queue import PriorityQueue [as 别名]
# 或者: from queue.PriorityQueue import task_done [as 别名]
def task_done(self):
log.debug('Job Done')
PriorityQueue.task_done(self)