Delayed_job: не удалось загрузить задание: неинициализированная константа Syck :: Syck - PullRequest
2 голосов
/ 20 марта 2011

Вот ошибка:

>> 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

gem 'delayed_job', '2.1.4'

ruby ​​1.9.2p0 (2010-08-18 редакция 29036) [x86_64-darwin10.4.0]

Рельсы 3.0.1

спасибо.

Ответы [ 2 ]

1 голос
/ 26 июня 2012

Я обнаружил, что это проблема, когда я обновил Rails 2 до 3 и развернул в стек Heroku Cedar. Это проблема, когда Delayed_Job пытается десериализовать обработчик из элемента очереди заданий. По умолчанию используется синтаксический анализатор Syck YAML.

Оказывается, Syck недоступно в стеке Heroku Cedar.

Включая драгоценный камень Psych и повторное развертывание исправили его для меня и позволили мне повторно вызывать неудачные задания.

gem 'psych'
0 голосов
/ 04 августа 2011

Я только что натолкнулся на это, и это оказалось синтаксической ошибкой в ​​моем только что измененном файле database.yml.

Неправильная ссылка на огурец:

test: &test
  database: test

cucumber:
  <<: &base
...