【问题标题】:Heroku + DelayedJob failing at 'rake jobs:work' and 'heroku workers 1'Heroku + DelayedJob 在 'rake jobs:work' 和 'heroku workers 1' 中失败
【发布时间】:2011-09-05 01:52:44
【问题描述】:

我无法在经过验证的 heroku 帐户上运行排队的延迟作业。这是细分:

当我在heroku上调用delayed_job时

# tropo_controller.rb in app/controllers
class TropoController < ApplicationController
  require 'lib/event_job'

  ...

  def sms
    Delayed::Job.enqueue(EventJob.new(nil))

然后验证delayed_job是否存在

$ heroku console
>> Delayed::Job.all

[#<Delayed::Backend::ActiveRecord::Job id: 2, priority: 0, attempts: 0, handler: "--- !ruby/struct:EventJob \nevent_id: \n", last_error: nil, run_at: "2011-05-30 21:01:24", locked_at: nil, failed_at: nil, locked_by: nil, created_at: "2011-05-30 21:01:24", updated_at: "2011-05-30 21:01:24">]

并尝试以这种方式启动一个新工人

$ heroku rake jobs:work
Starting job worker

(hangs)

或者这样

$ heroku workers 1
/Users/jaimeohm/.rvm/gems/ruby-1.9.2-p0@rails303/gems/heroku-2.2.1/lib/heroku/command.rb:125:in `rescue in run': undefined local variable or method `args' for Heroku::Command:Module (NameError)
    from /Users/jaimeohm/.rvm/gems/ruby-1.9.2-p0@rails303/gems/heroku-2.2.1/lib/heroku/command.rb:116:in `run'
    from /Users/jaimeohm/.rvm/gems/ruby-1.9.2-p0@rails303/gems/heroku-2.2.1/bin/heroku:14:in `<top (required)>'
    from /Users/jaimeohm/.rvm/gems/ruby-1.9.2-p0@rails303/bin/heroku:19:in `load'
    from /Users/jaimeohm/.rvm/gems/ruby-1.9.2-p0@rails303/bin/heroku:19:in `<main>'

失败了。我运行gem update heroku,重置数据库并重新启动服务器,但它仍然失败。我特意清空了排队作业的perform方法

# event_job.rb in app/lib
class EventJob < Struct.new(:event_id)
  def perform
    # empty for now
  end
end

我错过了什么?

【问题讨论】:

  • 我认为问题来自“heroku workers 1”失败。从其他人的帖子中,我找不到任何不起作用的实例。
  • 其他人遇到了类似的问题,这是由新版本的 rake 引入的错误引起的。那是 not 我的问题,而修复确实 not 解决了我的问题。 stackoverflow.com/questions/6091964/…
  • heroku workers 1 不工作是不寻常的。您可以尝试升级到 ruby​​-1.9.2-p180(您在每个 RVM 路径中使用 1.9.2-p0)。 rvm install 1.9.2-p180
  • 我现在得到了同样的错误,只是用 1.9.2-p180 代替。也许这是一个gem版本问题,我会尝试更新/限制其他人。
  • heroku gem v1.20.1 可以工作,而后来的工作则不适用于heroku workers 1 .. 我已经向 heroku 支持提交了详细的复制步骤

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


【解决方案1】:

Heroku 现在已经从 heroku gem 的 v2.2.2 修复了这个错误。

【讨论】:

    猜你喜欢
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    相关资源
    最近更新 更多