Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 等待远程服务器中的进程使用结构完成 安装程序_Python_Server_Wait_Fabric_Remote Server - Fatal编程技术网

Python 等待远程服务器中的进程使用结构完成 安装程序

Python 等待远程服务器中的进程使用结构完成 安装程序,python,server,wait,fabric,remote-server,Python,Server,Wait,Fabric,Remote Server,我正在使用启动远程服务器上的进程。我的本地服务器执行一个Python文件,该文件按顺序运行三个函数:第一个和第三个在本地服务器中,第二个在远程服务器中,如下所示 local_file.py local_function_1() remote_function() local_function_2() from fabric.api import * @hosts(remote_server) def remote_function(): run('python function_on_

我正在使用启动远程服务器上的进程。我的本地服务器执行一个Python文件,该文件按顺序运行三个函数:第一个和第三个在本地服务器中,第二个在远程服务器中,如下所示

local_file.py

local_function_1()
remote_function()
local_function_2()
from fabric.api import *
@hosts(remote_server)
def remote_function():
    run('python function_on_remote_server.py')
远程函数是在本地函数中指定的函数,如下所示

fabfile.py

local_function_1()
remote_function()
local_function_2()
from fabric.api import *
@hosts(remote_server)
def remote_function():
    run('python function_on_remote_server.py')
问题:
local_function_2
应该在
remote_function
完成运行后运行,但我不确定如何实现这一点

我考虑过(1)在运行
local\u function\u 2
之前等待固定的秒数,以及(2)在运行
local\u function\u 2
之前添加一个中间本地函数,检查是否存在来自
remote\u function
的某些输出


如何将本地服务器上函数的执行延迟到远程服务器上的函数完成运行之后?

一种方法是更改调用远程函数的方式,改用Fabric
execute

from fabric.api import execute

local_function_1()
execute(remote_function)
local_function_2()
在任务完成之前,应阻止执行


有关更多信息,请参阅。

这是完美的,正是我想要的。非常感谢。很高兴这可以在Fabric中完成。正如我从文档()中了解到的,这是Fabric的默认行为:
“Fabric检查通过操作调用的程序的返回值,如果它们没有干净地退出,将中止。”