ruby-on-rails - 使用脚本/delay_job 创建 delayed_job worker 时出现未定义方法错误

标签 ruby-on-rails ruby mongoid delayed-job

运行多个 worker 有点问题。

当使用 rake jobs:work jobs 创建 worker 时运行没有问题,即使多次调用它,但是当使用 ruby script/delayed_job -n 5 start all 作业因 Syck::DomainType 上的未定义方法而失败。

我已经搜索了很多,但似乎无法找到解决方案。我在 Mongoid 后端运行 DelayedJob。 gem 版本:

  • 抽成 0.9.2
  • rails 3.0.6
  • 延迟作业 2.1.4
  • delayedjob_mongoid 1.0.2

有没有人遇到过类似的错误/有解决方案?或者缺少一些关于为什么/如何根据调用方式以不同方式创建 worker 的信息?

最佳答案

我遇到了完全相同的问题。我可以通过在控制台中加载作业并尝试反序列化来重现它:

$ rails console production
> j = Delayed::Job.last
> YAML.load(j.handler)

在我的生产环境中,我得到了一个 Syck::DomainType 对象,而在开发中它只是反序列化了我的对象(两种情况下存储在 db 中的数据是相同的)。

长话短说,我意识到我的服务器上有 ruby​​ 1.9.1 而不是 1.9.2。使用 ruby​​-1.9.2p290 切换到 rvm 管理环境解决了我的问题。

关于ruby-on-rails - 使用脚本/delay_job 创建 delayed_job worker 时出现未定义方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6766431/

相关文章:

ruby-on-rails - Controller 测试和 stub 过滤器/操作。指导方针是什么?

jquery - Rails 中通过 AJAX RESTful 获取 HTML 部分内容

ruby-on-rails - 使用 ruby​​ 2.1.0 和 rails 4.2.0 错误创建 Heroku 应用程序

ruby-on-rails - Mongoid,如果设置了值,则作用域?

ruby-on-rails - Mongoid has_many 和多个belongs_to 关联

ruby-on-rails - 如何更改来自 DigitalOcean 的 One Click App for Ruby on Rails 图像中的默认项目

ruby-on-rails - 如何处理 UTF-8 电子邮件 header (如主题 :) using Ruby?

ruby - Ruby 2.2 中的垃圾收集器引发意想不到的 CoW

ruby - 使用 Ruby 将数据附加到 JSON 文件中

ruby-on-rails - Mongoid 查询中的日期