当前位置: 首页 > 面试题库 >

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

西门京
2023-03-14
问题内容

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

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

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

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

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



 类似资料:
  • 所以我有主python脚本,我想从我的主文件中调用另一个python脚本,但是,每当我这样做的时候,我调用的脚本就会超过原来的脚本控制台中的主脚本?

  • 我正在尝试将bash脚本迁移到Python。 bash脚本并行运行多个OS命令,然后在继续之前等待它们完成,即: 命令 我希望使用Python子进程实现同样的目标。这可能吗?如何等待subprocess.call命令完成后再继续?

  • 问题内容: 我有一个带有主标签页活动的Android应用程序,并且在单个标签页内有多个活动。在我的主要活动的onCreate()中,我有一个可运行的内容,它创建了一个列表,而在各个活动中,我都使用了此列表。 在各个活动的onCreate()中,我还具有在列表上运行的Runnable。但是,我需要这些Runnable仅在主选项卡活动的Runnable完成创建列表时才运行,否则我将得到一个空列表。我正

  • 问题内容: 因此,我正在运行一个过程,这将需要几个小时才能完成。我想在完成后自动开始另一个过程。请注意,我无法在第一个脚本中添加对第二个脚本的调用,也无法创建依次运行两个脚本的另一个脚本。在Linux中有什么方法可以做到这一点吗? 编辑:一种选择是使用pgrep 每分钟轮询一次,并检查该过程是否完成。如果是这样,请启动另一个。但是,我不喜欢这种解决方案。 PS:两者都是bash脚本,如果有帮助的话

  • 问题内容: 有一种方法可以通过执行以下操作在python中启动另一个脚本: 那么如何停止另一个已经运行的脚本?我想通过使用名称来停止脚本。 问题答案: 通常,先 导入 其他脚本,然后调用其功能和方法。 如果这对您不起作用,例如,另一个脚本的编写方式不适合导入,则可以使用该模块启动另一个进程。 有很多可能的方式来控制子进程并与子进程进行交互,例如,您可以捕获其stdout和sterr,然后将其发送给

  • 我在ExecutorService中有一些可运行的线程,希望在以下时间后加入线程: 因为它在Runnable中调用自己,所以我不能关闭,因为它可能会阻止自己创建新任务。 如何在不关闭的情况下等待所有线程完成?有没有办法返回一个未来,这样我就可以使用未来::get()。