具有优先级支持的异步任务队列。
wcpan.worker的Python项目详细描述
具有优先级支持的异步任务队列。
fromwcpan.workerimportAsyncQueue,TaskclassHighPriorityTask(Task):@propertydefpriority(self)->int:return2classLowPriorityTask(Task):@propertydefpriority(self)->int:return1# Note this queue is non-preemptive.queue=AsyncQueue()queue.start()# function_2 will come first.queue.post(LowPriorityTask(function_1))queue.post(HighPriorityTask(function_2))# cancel pending tasksqueue.flush()# wait for executing task (if any) ends, then stop the queueawaitqueue.stop()