3

同様の質問がすでにありましたが、私のケースは解決しませんでした。

私は次のようなものを持っています:

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 は開始されません。2 つの異なるサーバーで両方を並行して開始するにはどうすればよいですか? 私は試した:

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

@parallel デコレータが機能しませんでした。こちらのfabric FAQにある提案を試してみました。画面しか利用できないため、2 つの画面セッションを同時に開始する方法がわかりませんでした。バックグラウンドで最初に実行すると、問題が解決するのではないかと思いました。task1 を確実にバックグラウンドにするにはどうすればよいですか? fabric 1.4 と pytho n2.6 を実行中

助けてくれてありがとう。

PS: bkg で両方のタスクを別々に実行するシェル スクリプトを使用して、明らかなハックアラウンドを回避したいと考えています。

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

1 に答える 1

-2

設定するとどうなるか

env.parallel = True

これは役に立ちますか?

于 2013-02-15T14:43:32.307 に答える