我有两个作业同时排队,一个工作人员连续运行它们。这两个作业都从builds/
目录并将它们放入我的 Rails 项目根目录中的临时文件夹中。
第一个作业总是会成功,永远不会出现问题 - 哪个作业先运行也并不重要。第一个会起作用。
第二个在尝试复制文件时收到此错误:
没有这样的文件或目录 - /Users/apps/Sites/my-site/releases/20130829065128/builds/foo
该发布文件夹已有两周历史,不应仍位于服务器上。它是空的,只包含一个 public/uploads 目录,没有其他内容。我已经杀死了所有的工作人员并多次重新启动它们,并且多次重新部署了 Rails 应用程序。当我删除该发布目录时,它会再次出现。
我现在不知道该怎么办。为什么这个工作人员总是在这个旧版本目录中创建/查找?为什么只有第二个工人会这样做?我通过使用以下方式获取路径:
Rails.root.join('builds')
- Rails.root 显然是 2 周前发布的 capistrano 版本?我还应该提到这只发生在生产环境中。我能做些什么
?
部署时救援未重新启动(停止和启动),这导致运行旧版本的代码。每个工作人员继续为队列提供服务,从而导致奇怪的错误或行为。
根据路径名称,您似乎正在使用 Capistrano 进行部署。
您是否正在使用卡皮斯特拉诺风格宝石?如果没有,你应该看看。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)