开发者

Job failed to load: uninitialized constant Syck::Syck

I am running a method in the background using delayed-job (collectiveideas fork)

The method I am running is shown below, which fetches the price of the isbn:

  def update_prices(isbn13)
   @amazon = Nokogiri::XML(open("http://www.amazon.com/s/?url=search-alias%3Daps&field-keywords=#{isbn13}"))
   price = @amazon.search('span.listprice').first.text.gsub('$', '')

   book = Book.find_by_isbn13(isbn13)
   book.update_attribute(:amazon_us_price, price)
  end
  handle_asynchronously :update_prices

Now when I run this, the job is added to the database but encounters an error when running. The error is quite large, but I think the gist of it comes from the first line: Job failed to load: uninitialized constant Syck::Syck.

{Job failed to load: uninitialized constant Syck::Syck. Handler: "--- !ruby/struct:Delayed::PerformableMethod 
object: &id005 !ruby/object:BooksController 
  _action_name: show
  _config: !omap []

  _env: &id001 
    GATEWAY_INTERFACE: CGI/1.1
    PATH_INFO: /books/9780425160985
    QUERY_STRING: \"\"
    REMOTE_ADDR: 127.0.0.1
    REMOTE_HOST: localhost
    REQUEST_METHOD: GET
    REQUEST_URI: http://localhost:3000/books/9780425160985
    SCRIPT_NAME: \"\"
    SERVER_NAME: localhost
    SERVER_PORT: \"3000\"
    SERVER_PROTOCOL: HTTP/1.1
    SERVER_SOFTWARE: WEBrick/1.3.1 (Ruby/1.9.2/2010-08-18)
    HTTP_HOST: localhost:3000
    HTTP_CONNECTION: keep-alive
    HTTP_REFERER: http://localhost:3000/books/search?utf8=%E2%9C%93&keywords=hornets+nest&commit=Search
    HTTP_ACCEPT: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
    HTTP_USER_AGENT: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.107 Safari/534.13
    HTTP_ACCEPT_ENCODING: gzip,deflate,sdch
    HTTP_ACCEPT_LANGUAGE: en-US,en;q=0.8
    HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    HTTP_COOKIE: _bookcloud_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRiIlMTNkZWFlYTdiYjVjN2IzZDAyOTU1MDc1NTc1ZDJlZDBJIhBfY3NyZl90b2tlbgY7AEZJIjFrUHJoT0RlZmZoSzIrSVdFdFJNbGxMckxENEZnMTM1STZuQUJCdHJuak1BPQY7AEY%3D--c2b7958a5461253129b6d363e3d547bd44c83f9d
    rack.version: 
    - 1
    - 1
    rack.input: !ruby/object:StringIO {}

    rack.errors: !ruby/object:IO {}

    rack.multithread: false
    rack.multiprocess: false
    rack.run_once: false
    rack.url_scheme: http
    HTTP_VERSION: HTTP/1.1
    REQUEST_PATH: /
    action_dispatch.parameter_filter: 
    - :password
    action_dispatch.secret_token: ab805f7bf1e681785a2ac4813edc43678cbe855682bc7ca9dc5f2116fc892d8ca41466f9bc261ef4ae15ad83c1c38780780d2f6bfe9c00c14abd68542a535400
    action_dispatch.remote_ip: !ruby/object:ActionDispatch::RemoteIp::RemoteIpGetter 
      check_ip_spoofing: true
      env: *id001
      trusted_proxies: !ruby/regexp /(^127\\.0\\.0\\.1$|^(10|172\\.(1[6-9]|2[0-9]|30|31)|192\\.168)\\.)/i
    rack.session: !map:ActionDispatch::Session::AbstractStore::SessionHash 
      session_id: 13deaea7bb5c7b3d02955075575d2ed0
      _csrf_token: kPrhODeffhK2+IWEtRMllLrLD4Fg135I6nABBtrnjMA=
    rack.session.options: !map:ActionDispatch::Session::AbstractStore::OptionsHash 
      :path: /
      :domain: 
      :expire_after: 
      :secure: false
      :httponly: true
      :id: 13deaea7bb5c7b3d02955075575d2ed0
    rack.request.cookie_string: _bookcloud_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFRiIlMTNkZWFlYTdiYjVjN2IzZDAyOTU1MDc1NTc1ZDJlZDBJIhBfY3NyZl90b2tlbgY7AEZJIjFrUHJoT0RlZmZoSzIrSVdFdFJNbGxMckxENEZnMTM1STZuQUJCdHJuak1BPQY7AEY%3D--c2b7958a5461253129b6d363e3d547bd44c83f9d
    rack.request.cookie_hash: 
      _bookcloud_session: BAh7B0kiD3Nlc3Npb25faWQGOgZFRiIlMTNkZWFlYTdiYjVjN2IzZDAyOTU1MDc1NTc1ZDJlZDBJIhBfY3NyZl90b2tlbgY7AEZJIjFrUHJoT0RlZmZoSzIrSVdFdFJNbGxMckxENEZnMTM1STZuQUJCdHJuak1BPQY7AEY=--c2b7958a5461253129b6d363e3d547bd44c83f9d
    action_dispatch.cookies: !map:ActionDispatch::Cookies::CookieJar 
      _bookcloud_session: BAh7B0kiD3Nlc3Npb25faWQGOgZFRiIlMTNkZWFlYTdiYjVjN2IzZDAyOTU1MDc1NTc1ZDJlZDBJIhBfY3NyZl90b2tlbgY7AEZJIjFrUHJoT0RlZmZoSzIrSVdFdFJNbGxMckxENEZnMTM1STZuQUJCdHJuak1BPQY7AEY=--c2b7958a5461253129b6d363e3d547bd44c83f9d
    action_dispatch.request.unsigned_session_cookie: 
      session_id: 13deaea7bb5c7b3d02955075575d2ed0
      _csrf_token: kPrhODeffhK2+IWEtRMllLrLD4Fg135I6nABBtrnjMA=
    action_dispatch.request.path_parameters: 
      :controller: books
      :action: show
      :isbn13: \"9780425160985\"
    action_controller.instance: *id005
    action_dispatch.request.content_type: 
    action_dispatch.request.request_parameters: !map:ActiveSupport::HashWithIndifferentAccess {}

    rack.request.query_string: \"\"
    rack.request.query_hash: {}

    action_dispatch.request.query_parameters: !map:ActiveSupport::HashWithIndifferentAccess {}

    action_dispatch.request.parameters: &id002 !map:ActiveSupport::HashWithIndifferentAccess 
      controller: books
      action: show
      isbn13: \"9780425160985\"
    action_dispatch.request.formats: 
    - !ruby/object:Mime::Type 
      string: text/html
      symbol: :html
      synonyms: 
      - application/xhtml+xml
  _headers: 
    Content-Type: text/html
  _params: *id002
  _request: &id003 !ruby/object:ActionDispatch::Request 
    env: *id001
    filtered_parameters: 
      controller: books
      action: show
      isbn13: \"978042开发者_开发问答5160985\"
    fullpath: /books/9780425160985
    method: GET
    request_method: GET
  _response: !ruby/object:ActionDispatch::Response 
    blank: false
    block: 
    body: []

    cache_control: {}

    cookie: []

    etag: 
    header: {}

    length: 0
    request: *id003
    sending_file: false
    status: 200
    writer: !ruby/object:Proc {}

  _response_body: 
  _status: 200
  action_has_layout: true
  author: Patricia Daniels Cornwell
  book: !ruby/ActiveRecord:Book 
    attributes: 
      isbn13: \"9780425160985\"
      title: Hornet's Nest
      author: Patricia Daniels Cornwell
      price: 
      created_at: &id004 2011-03-03 10:41:27.757528 Z
      updated_at: *id004
      amazon_us_price: 
      id: 38
  lookup: !ruby/object:Nokogiri::XML::Document 
    decorators: 
    errors: []

    node_cache: 
    - !ruby/object:Nokogiri::XML::Element {}

    - !ruby/object:Nokogiri::XML::Element {}

    - !ruby/object:Nokogiri::XML::Element {}

  lookup_context: !ruby/object:ActionView::LookupContext 
    details: 
      :handlers: 
      - :erb
      - :rjs
      - :builder
      - :rhtml
      - :rxml
      :formats: 
      - :html
      :locale: 
      - :en
      - :en
    details_key: 
    frozen_formats: false
    skip_default_locale: false
    view_paths: !seq:ActionView::PathSet 
      - !ruby/object:ActionView::FileSystemResolver 
        cached: {}

        caching: false
        path: /Users/nick/Dropbox/rails/bookcloud/app/views
  title: Hornet's Nest
  view_context_class: 
method_name: :update_prices_without_delay
args: 
- \"9780425160985\"
"
/Users/nick/.rvm/gems/ruby-1.9.2-p0@rorticket/gems/delayed_job-2.1.4/lib/delayed/backend/base.rb:81:in `rescue in payload_object'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@rorticket/gems/delayed_job-2.1.4/lib/delayed/backend/base.rb:79:in `payload_object'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@rorticket/gems/delayed_job-2.1.4/lib/delayed/backend/base.rb:87:in `invoke_job'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@rorticket/gems/delayed_job-2.1.4/lib/delayed/worker.rb:120:in `block (2 levels) in run'
/Users/nick/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/timeout.rb:57:in `timeout'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@rorticket/gems/delayed_job-2.1.4/lib/delayed/worker.rb:120:in `block in run'
/Users/nick/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/benchmark.rb:309:in `realtime'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@rorticket/gems/delayed_job-2.1.4/lib/delayed/worker.rb:119:in `run'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@rorticket/gems/delayed_job-2.1.4/lib/delayed/worker.rb:177:in `reserve_and_run_one_job'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@rorticket/gems/delayed_job-2.1.4/lib/delayed/worker.rb:104:in `block in work_off'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@rorticket/gems/delayed_job-2.1.4/lib/delayed/worker.rb:103:in `times'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@rorticket/gems/delayed_job-2.1.4/lib/delayed/worker.rb:103:in `work_off'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@rorticket/gems/delayed_job-2.1.4/lib/delayed/worker.rb:78:in `block (2 levels) in start'
/Users/nick/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/benchmark.rb:309:in `realtime'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@rorticket/gems/delayed_job-2.1.4/lib/delayed/worker.rb:77:in `block in start'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@rorticket/gems/delayed_job-2.1.4/lib/delayed/worker.rb:74:in `loop'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@rorticket/gems/delayed_job-2.1.4/lib/delayed/worker.rb:74:in `start'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@rorticket/gems/delayed_job-2.1.4/lib/delayed/tasks.rb:9:in `block (2 levels) in <top (required)>'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:636:in `block in execute'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:597:in `block in invoke_with_call_chain'
/Users/nick/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2029:in `block (2 levels) in top_level'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2029:in `block in top_level'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2001:in `block in run'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/gems/rake-0.8.7/bin/rake:31:in `<top (required)>'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/bin/rake:19:in `load'
/Users/nick/.rvm/gems/ruby-1.9.2-p0@global/bin/rake:19:in `<main>'

Any idea what may be causing the error? I have never heard of Syck before.


Include the following lines of code in boot.rb (config\boot.rb)

require 'yaml'
YAML::ENGINE.yamler= 'syck'


For those that this didn't work for, like me, I've found include the Psych gem to handle YAML parsing fixed the issue. See: Delayed_job: Job failed to load: uninitialized constant Syck::Syck

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜