我有三个函数使用 papermill 执行 3 个不同的 jupyter 笔记本,我希望第一个 (job1) 和第二个 (job2) 函数同时运行,最后一个函数 (job3) 仅在第一个函数 (job1) 完成运行后运行任何错误。我不确定为第二个函数创建一个新线程或如何正确使用 join() 方法是否有意义。我在 Windows 上运行,由于某种原因 concurrent.futures 和多处理不起作用,这就是我使用线程模块的原因。
def job1():
return pm.execute_notebook('notebook1.ipynb',log_output=False)
def job2():
return pm.execute_notebook('notebook2.ipynb',log_output=False)
def job3():
return pm.execute_notebook('notebook3.ipynb',log_output=False)
t1 = threading.Thread(target = job1)
t2 = threading.Thread(target = job2)
t3 = threading.Thread(target = job3)
try:
t1.start()
t1.join()
t2.start()
except:
pass
finally:
t3.start()