Capistrano MUTEX - 阻止并发执行
Capistrano MUTEX - block concurrent executions
我们正在使用 Capistrano 3.0 并使我们的开发人员能够使用他们自己的用户帐户从他们自己的机器部署到各种服务器。
我们需要阻止并发执行(单例、互斥模式等)。
我们目前的想法是在deploy开始的时候在target上放置一个'lock'文件,然后:finished之后清理文件锁。但是,如果抛出异常,则永远不会到达 :finished 代码。我正在尝试开始、救援、确保删除文件锁,但我真的很讨厌用它来包装我们所有的部署代码。
知道我们如何阻止给定目标机器上的并发部署吗?
如果部署因任何原因失败,Capistrano 还会执行一个 deploy:failed
任务。您可以在那里进行清理。
您还可以在 GitHub 中搜索术语 "capistrano" 和 "lock",看看其他人是如何解决这个问题的。不过,我认为这些项目目前都没有得到维护。
我们正在使用 Capistrano 3.0 并使我们的开发人员能够使用他们自己的用户帐户从他们自己的机器部署到各种服务器。
我们需要阻止并发执行(单例、互斥模式等)。
我们目前的想法是在deploy开始的时候在target上放置一个'lock'文件,然后:finished之后清理文件锁。但是,如果抛出异常,则永远不会到达 :finished 代码。我正在尝试开始、救援、确保删除文件锁,但我真的很讨厌用它来包装我们所有的部署代码。
知道我们如何阻止给定目标机器上的并发部署吗?
如果部署因任何原因失败,Capistrano 还会执行一个 deploy:failed
任务。您可以在那里进行清理。
您还可以在 GitHub 中搜索术语 "capistrano" 和 "lock",看看其他人是如何解决这个问题的。不过,我认为这些项目目前都没有得到维护。