我有两个同时排队的工作,一个工人连续运行它们.这两个作业都复制了我的Rails项目根目录中的builds /目录中的一些文件,并将它们放入一个临时文件夹中.
第一份工作总是成功,从来没有问题 – 哪个工作先运行也无关紧要.第一个将工作.
No such file or directory – /Users/apps/Sites/my-site/releases/20130829065128/builds/foo
该版本文件夹已有两周时间了,不应该仍在服务器上.它是空的,只包含一个公共/上传目录,没有别的.我已经杀死了我的所有工作人员并多次重新启动它们,并多次重新部署Rails应用程序.当我删除那个版本目录时,它再次成功.
我不知道该做什么.为什么这个工作者总是在这个旧版本目录中创建/查看?为什么只有第二个工人这样做?我通过使用以下方式获取路径:
Rails.root.join(‘builds’) – Rails.root显然是一个2周的capistrano发行版?我还应该提到这只发生在生产环境中.我能做什么
?
解决方法
在部署中没有重新启动(停止和启动)Rescue,这导致运行旧版本的代码.每个工作人员继续为队列服务,导致奇怪的错误或行为.
根据路径名称,您似乎使用Capistrano进行部署.
你在使用capistrano-resque宝石吗?如果没有,你应该看看.