python - 在不同主机上并行和后台执行 Fabric 函数

标签 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 .只有屏幕可用,我无法找到如何同时启动两个屏幕 session 。 我想,在后台运行第一个可以解决我的问题?我如何将 task1 可靠地置于后台?运行 fabric 1.4 和 pytho n2.6

感谢您的帮助。

PS:我想避免使用在 bkg 中分别运行两个任务的 shell 脚本进行明显的修改:

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

最佳答案

如果你设置会怎样

env.parallel = True

这有帮助吗?

关于python - 在不同主机上并行和后台执行 Fabric 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14876275/

相关文章:

python - 通过 SSH 执行远程 python 脚本

python - 使用 atexit 进行织物清理操作

python - Fabric / python : AttributeError: 'NoneType' object has no attribute 'partition'

python - Fabric 中的正则表达式和 sed 出现问题

Python动态循环终止变量

python - 我该如何解决 python django 中的这个错误?

python - 使用python将字符附加到txt文件中的每一行

Scala 并行集合 - 如何提前返回?

c# - 单核cpu上的C#并行和多线程

c++ - OpenMP 和内核/线程