ruby-on-rails-3.1 – 使用Thin或Unicorn在生产环境中运行delaye
我最近把delayed_job带到了我的Rails 3.1.3应用程序中.开发中
一切都好.我甚至将我的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::PerformableMethodnattributes:n id: 13n event_id: 26n name: memememen api_key: !!null n" 没有类或方法名称的指示.当我加载YAML时 "--- !ruby/object:Delayed::PerformableMethodnobject: !ruby/ ActiveRecord:Domainn attributes:n id: 13n event_id: 26n name: memememen api_key: !!null nmethod_name: :create_anargs: [] n" 当然,这项工作运行良好.困惑,我接着回忆起读书 请注意,我正在运行delayed_job 3.0.1官方,但已尝试升级到 >在阶段我在TCP端口上运行1个瘦服务器 – 前面没有Web代理 网络代理/ Nginx可以与它有关吗?拜托,非常感谢任何见解.我花了很多时间 解决方法
我通过不使用#delay来解决这个问题.相反,我用自定义作业替换了所有“model.delay.method”代码.这样做就像一个魅力,最终更灵活.此修复程序适用于Thin.我没有用Unicorn测试过.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |