Python 等待远程服务器中的进程使用结构完成 安装程序
我正在使用启动远程服务器上的进程。我的本地服务器执行一个Python文件,该文件按顺序运行三个函数:第一个和第三个在本地服务器中,第二个在远程服务器中,如下所示 local_file.pyPython 等待远程服务器中的进程使用结构完成 安装程序,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_
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检查通过操作调用的程序的返回值,如果它们没有干净地退出,将中止。”