python - multiprocessing.Pool:任务启动时得到通知
问题描述
我用multiprocessing.Pool
这样的方式来执行一些任务。
def execute(task):
# run task, return result
def on_completion(task_result):
# process task result
async_results = [pool.apply_async(execute,
args=[task],
callback=on_completion)
for task in self.tasks]
# wait for results
我的完成处理程序由池以一种很好的序列化方式调用,因此我不必担心其实现中的线程安全。
但是,我也希望在任务开始时收到通知。有没有一种优雅的方式来完成以下任务?
def on_start(arg): # Whatever arg(s) were passed to the execute function
# Called when task starts to run
pool.apply_async(run_task,
args=[task],
start_callback=on_start,
completion_callback=on_completion)
解决方案
推荐阅读
- sql-server - 我如何在sql中编写电源程序?
- python - 检查列值是否在 Pandas 的一个特定列中
- jquery - jQuery:鼠标事件的偏移位置
- python - PySerial read() 错过了帧数据的开头
- powershell - 使用windows powershell 5.1从json变量中获取值
- django - 谷歌浏览器不显示后端错误
- vue.js - Vue - 使 vuex 存储可用于以编程方式创建的组件的正确方法
- syntax - 如何在 TextMate 语言定义中嵌入另一个语法对象,tmLanguage
- c# - 如何绕过 FileNotFoundException
- javascript - 在 React 中连接状态外的函数