我正在尝试在Python中创建作业计划程序。然后,调度程序(即父脚本)将运行子脚本(也在Python中)。
似乎最好的方法是通过子进程,这很吸引人,因为我希望能够取消/超时所涉及的进程/脚本,如果运行时间太长。
我尝试运行的脚本带有一个参数。至关重要的是,它还返回一个对象(一旦子作业完成,我便要在父脚本中引用该对象)。
我能够成功地将参数传递给子脚本并执行它。但是,我不确定如何接收子脚本“返回”的对象。因此,例如,如果我的子脚本旨在返回字典,那么我想在父脚本中引用该字典中的数据。
很明显,如果需要通过其他方式完成操作就可以了,但是至关重要的是,我可以终止该进程并将参数传递给任何子脚本。
示例代码:
import subprocess
my_timeout_in_seconds = 60
job_data = subprocess.run([sys.executable, path_to_my_script, argument_to_pass],
shell=False, timeout=my_timeout_in_seconds)