python fabric,如何不并行化本地命令?

时间:2012-10-05 23:50:26

标签: python fabric

如何使用@parallel decorator将任务内的本地命令并行化:

@parallel
def myTask():
  local('initialize localhost')
  run('command on remote host')
  local('clean up localhost')

我希望本地主机上的命令只执行一次,远程主机的命令并行运行。现在我看到每个远程主机实例都运行本地主机命令。最干净的方法是什么?

由于

2 个答案:

答案 0 :(得分:1)

以下是否适用于您?

def local_init():
    local('initialize')

@parallel
def myTask():
    run('remote command')

def local_cleanup():
    local('clean up')

然后:

fab local_init myTask local_cleanup

答案 1 :(得分:1)

将并行命令分组为修饰函数。然后使用execute()在本地调用之间调用它。