等到远程服务器中的进程使用 Fabric 完成
Wait until process in remote server finishes using Fabric
设置
我正在使用 Fabric 启动远程服务器上的进程。我的本地服务器执行一个 Python 文件,该文件 运行 按顺序执行三个函数:本地服务器中的第一个和第三个以及远程服务器中的第二个,如下所示。
local_file.py
local_function_1()
remote_function()
local_function_2()
远程函数是在本地指定的fabfile,如下
fabfile.py
from fabric.api import *
@hosts(remote_server)
def remote_function():
run('python function_on_remote_server.py')
问题
local_function_2
应该 运行 在 remote_function
完成 运行ning 之后,但我不确定如何完成此操作。
我考虑过 (1) 在 local_function_2
运行 之前等待固定的秒数,以及 (2) 添加一个中间本地函数来检查 [=13 的某些输出是否存在=] 在 运行ning local_function_2
.
之前
如何延迟本地服务器上的函数的执行,直到远程服务器上的函数完成 运行ning?
实现此目的的一种方法是更改您的调用方式 remote_function,并改用 Fabric execute
。
from fabric.api import execute
local_function_1()
execute(remote_function)
local_function_2()
执行应该阻塞直到任务完成。
有关详细信息,请参阅 Intelligently executing tasks with execute
。
设置
我正在使用 Fabric 启动远程服务器上的进程。我的本地服务器执行一个 Python 文件,该文件 运行 按顺序执行三个函数:本地服务器中的第一个和第三个以及远程服务器中的第二个,如下所示。
local_file.py
local_function_1()
remote_function()
local_function_2()
远程函数是在本地指定的fabfile,如下
fabfile.py
from fabric.api import *
@hosts(remote_server)
def remote_function():
run('python function_on_remote_server.py')
问题
local_function_2
应该 运行 在 remote_function
完成 运行ning 之后,但我不确定如何完成此操作。
我考虑过 (1) 在 local_function_2
运行 之前等待固定的秒数,以及 (2) 添加一个中间本地函数来检查 [=13 的某些输出是否存在=] 在 运行ning local_function_2
.
如何延迟本地服务器上的函数的执行,直到远程服务器上的函数完成 运行ning?
实现此目的的一种方法是更改您的调用方式 remote_function,并改用 Fabric execute
。
from fabric.api import execute
local_function_1()
execute(remote_function)
local_function_2()
执行应该阻塞直到任务完成。
有关详细信息,请参阅 Intelligently executing tasks with execute
。