Delayed_job:作业无法加载:未初始化的常量Syck :: Syck

时间:2011-03-20 07:11:08

标签: ruby ruby-on-rails-3 delayed-job

这是错误:

>> Delayed::Job.find(:last).last_error
=> {Job failed to load: uninitialized constant Syck::Syck. Handler: \"--- !ruby/struct:Delayed::PerformableMethod \\nobject: &id007 !ruby/object:TryController \\n  _action_name: create

但我安装了syck ext。

用法:

def create_user(name,pass,time)
  puts "hello"
  Net::HTTP.get(URI.parse("http://www.example.net/buildtest.php?hao=#{name}&mi=#{pass}&da=#{time}"))
end

def create
   delay.create_user("nihao000oei9","1","1")
end

宝石'delayed_job','2.1.4'

ruby​​ 1.9.2p0(2010-08-18修订版29036)[x86_64-darwin10.4.0]

Rails 3.0.1

感谢。

2 个答案:

答案 0 :(得分:1)

当我从Rails 2升级到3并部署到Heroku Cedar堆栈时,我发现这是一个问题。当Delayed_Job尝试从作业队列项中反序列化处理程序时,这是一个问题。默认情况下,它使用Syck YAML解析器。

原则上Syck在Heroku Cedar堆栈上不可用。

包含Psych gem并重新部署为我修复它并允许我重新调用失败的作业。

gem 'psych'

答案 1 :(得分:0)

我刚碰到这个,结果证明我刚修改过的database.yml中存在语法错误。

它对黄瓜使用了错误的参考:

test: &test
  database: test

cucumber:
  <<: &base