python fabric为所有服务器运行一次函数

时间:2014-10-28 07:47:28

标签: python deployment fabric

我们有一个包含5个服务器的部署脚本,我们希望运行该脚本并仅通知我们一次,即使它运行5台服务器。

示例代码:

env.hosts = [' web1',' web2',' web3',' web4',' web5&# 39]

def notify():
    sendNotify()

@task
def deploy():
    sendNotify()
    deploy stuff
    deploy stuff
    deploy stuff
    deploy stuff

我希望通知只会被调用一次,但因为有5个服务器,所以会被调用5次。

1 个答案:

答案 0 :(得分:1)

也许您可以使用@runs_once上的notify装饰器。

请参阅:http://fabric.readthedocs.org/en/1.3.4/api/core/decorators.html#fabric.decorators.runs_once