ruby-on-rails – 在Resque作业期间,Rails.root指向生产中的错误目录

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 在Resque作业期间,Rails.root指向生产中的错误目录前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个同时排队的工作,一个工人连续运行它们.这两个作业都复制了我的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宝石吗?如果没有,你应该看看.

猜你在找的Ruby相关文章