2

I cannot get queued delayed_jobs to run on my verified heroku account. Here is the breakdown:

When I invoke delayed_job on heroku

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

  ...

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

And then verify that the delayed_job exists

$ 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">]

And attempt to start a new worker either this way

$ heroku rake jobs:work
Starting job worker

(hangs)

or this way

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

It fails. I run gem update heroku, reset the DB, and restart the server, and it still fails. I deliberately empty the perform method of the queued job

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

What am I missing?

jaime
  • 927
  • 8
  • 13
  • I think the issue comes from "heroku workers 1" failing. I can't find any instance of that not working, from others' posts. – jaime May 31 '11 at 01:03
  • Someone else ran into a similar issue, which was caused by a bug introduced by a new version of rake. That is *not* my issue and the fix does *not* solve my issue. http://stackoverflow.com/questions/6091964/delayed-job-queue-not-being-processed-on-heroku – jaime May 31 '11 at 01:33
  • `heroku workers 1` not working is unusual. You might try upgrading to ruby-1.9.2-p180 (you are using 1.9.2-p0 per your RVM path). `rvm install 1.9.2-p180` – wuputah May 31 '11 at 02:47
  • I get the same error now, just with 1.9.2-p180 instead. Maybe it's a gem version issue though, I'll try updating / limiting others. – jaime May 31 '11 at 03:54
  • heroku gem v1.20.1 works and later ones don't for `heroku workers 1` .. I've filed detailed replication steps with heroku support – jaime May 31 '11 at 19:33

1 Answers1

1

Heroku has now fixed this bug as of v2.2.2 of the heroku gem.

jaime
  • 927
  • 8
  • 13