一尘不染

如何在Python中运行另一个脚本而不等待它完成?

django

我正在为用户创建一个小仪表板,使他可以运行特定作业。我正在使用Django,因此我希望他能够单击链接以开始工作,然后将页面返回给他并显示该工作正在运行的消息。工作结果将在以后通过电子邮件发送给他。

我相信我应该使用,subprocess.Popen但是我不确定。所以在伪代码中,这是我想要做的:

if job == 1:
    run script in background: /path/to/script.py
    return 'Job is running'

阅读 1139

收藏
2020-03-27

共1个答案

一尘不染

p = subprocess.Popen([sys.executable, '/path/to/script.py'], 
                                    stdout=subprocess.PIPE, 
                                    stderr=subprocess.STDOUT)

这将在后台启动子流程。你的脚本将继续正常运行。

2020-03-27