【发布时间】:2021-01-01 00:46:10
【问题描述】:
我正在使用 GNU Parallel 运行 Python 脚本以获取不同参数的列表。在 Python 脚本中,我将数据写入文件(实际上,文件的名称就是脚本参数)。 Python 脚本在处理 N 次试验后将数据写入文件,其中 N 是另一个参数。因此,在所有试验完成之前不会写入数据。但是通过试验的时间可能会因测试参数的数量而异。出于这个原因,如果脚本对于某些参数集花费的时间过长,脚本允许我引发 KeyboardInterrupt 错误 (Ctrl+C) 并在终止之前写入它迄今为止获得的数据。
但是,通过使用 GNU Parallel,使用 Ctrl+C 将终止并行命令,并完全停止 Python 作业,因此目前没有写入数据。
是否可以在这些 Python 脚本中引发 KeyboardInterrupt 以让它们在并行被终止之前完成错误处理?理想情况下,它会类似于 1. 执行 parallel python script.py ::: args,2. 一段时间后,使用 Ctrl+C 取消,3. Parallel 告诉 Python 脚本查看 KeyboardInterrupt(或任何错误,没关系)和并行暂停以等待 Python 作业完成处理,4. 并行终止,5. 我有当时获得的数据的文件。
注意:我想要一个不要求重写Python脚本的数据写入方法的答案。
【问题讨论】:
标签: python bash interrupt-handling gnu-parallel raise