我最近把delayed_job带到了我的Rails 3.1.3应用程序中.开发中
一切都好.我甚至将我的DJ发布在与我相同的VPS上
生产应用程序使用相同的生产应用程序服务器(Thin),
一切都很好.然而,一旦我发布到生产,所有
地狱破裂:没有任何工作进入工作表
正确地说,我开始在所有日志中看到以下内容
加工工作:
一切都好.我甚至将我的DJ发布在与我相同的VPS上
生产应用程序使用相同的生产应用程序服务器(Thin),
一切都很好.然而,一旦我发布到生产,所有
地狱破裂:没有任何工作进入工作表
正确地说,我开始在所有日志中看到以下内容
加工工作:
2012-02-18T14:41:51-0600: [Worker(delayed_job host:hope pid:12965)] NilClass# completed after 0.0151 2012-02-18T14:41:51-0600: [Worker(delayed_job host:hope pid:12965)] 1 jobs processed at 15.9666 j/s,0 Failed ...
NilClass并没有方法名称?当然不正确.所以我看了看
数据库中作业的序列化处理程序并看到:
"--- !ruby/object:Delayed::PerformableMethod\nattributes:\n id: 13\n event_id: 26\n name: memememe\n api_key: !!null \n"
没有类或方法名称的指示.当我加载YAML时
一个对象,并在我得到的PerformableMethod上调用#object
零.为了踢,我然后在破碎的生产上启动控制台
应用程序和推迟相同的工作.这次处理程序看起来像:
"--- !ruby/object:Delayed::PerformableMethod\nobject: !ruby/ ActiveRecord:Domain\n attributes:\n id: 13\n event_id: 26\n name: memememe\n api_key: !!null \nmethod_name: :create_a\nargs: [] \n"
当然,这项工作运行良好.困惑,我接着回忆起读书
一些关于DJ不能与Thin玩得很好的东西.所以,我试过Unicorn和
很遗憾的看到了同样的结果.我想以后的研究时间
这与应用服务器如何加载YAML有关
图书馆Psych和Syck以及DJ与他们的互动.我不能,
然而,确切地说明了什么是错的.
请注意,我正在运行delayed_job 3.0.1官方,但已尝试升级到
主分支甚至尝试降级到2.1.4.
以下是我的舞台和制作之间的一些显着差异
设置:
>在阶段我在TCP端口上运行1个瘦服务器 – 前面没有Web代理
>在生产中,我使用Nginx运行2个瘦服务器和代理.
他们通过UNIX套接字交谈
>当我尝试独角兽时,它是由Nginx代理的1个app服务器
UNIX套接字
网络代理/ Nginx可以与它有关吗?拜托,非常感谢任何见解.我花了很多时间
整合delayed_job并且不愿意搁置工作,或者更糟糕的是,
扔了它.谢谢阅读.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。