【发布时间】:2014-07-21 14:51:07
【问题描述】:
我的部署方案涉及典型的 Django 设置,但在多个服务器上运行。基本上,我上传源代码,执行几个构建步骤(编译 .pyc 文件,collectstatic 等),然后运行syncdb 和migrate,最后重新加载 apache2。
我的问题是我将代码部署到 4-5 台服务器上,并且计划在未来部署更多,并且部署需要很长时间(每台服务器超过一分钟)。部署过程中的几乎所有步骤都可以并行完成,除了 syncdb/migrate。有没有办法使用 Fabric 只在其中一台机器上运行那些任务(数据库服务器与其他服务器是分开的),并并行运行其余任务?
【问题讨论】:
-
fabric.readthedocs.org/en/1.3.0/usage/parallel.html#decorators 该示例是否解决了您要执行的操作?
-
有点。理想情况下,我想要
single或once装饰器之类的东西。基本上,多次运行某些任务是没有意义的。我只需要它们在任何主机上每次部署运行一次。