在不同主机上并行执行Fabric功能

时间:2013-02-14 13:48:10

标签: python parallel-processing fabric

已经提出过类似的问题,但没有解决我的问题。

我有类似的东西:

from fabric.api import *
env.rolesdefs = {'server1' : [me@312312], 'server2' : [me@978978]}

@roles('server1')
def run_task1():
    do_stuff_forever

@roles('server2')
def run_task2():
    do_other_stuff_forever        

因为* _forever行为,我无法运行它们串行。 server2上的task2永远不会启动。如何在两台不同的服务器上并行启动它们? 我试过了:

def run_all():
    execute(run_task1)
    execute(run_task2)

@parallel装饰器不起作用。我尝试了这里给出的建议fabric FAQ。只有屏幕可用我无法找到如何同时启动两个屏幕会话。 我想,在后台运行第一个可以解决我的问题?如何将task1可靠地置于后台?运行面料1.4和pytho n2.6

感谢您的帮助。

PS:我想避免使用shell脚本在bkg中单独运行这两个任务的明显黑客行为:

#! /bin/bash
fab run_task1 &
fab run_task2 &

1 个答案:

答案 0 :(得分:-2)

如果设置

怎么办?
env.parallel = True

这有帮助吗?