work stop rails perform method job delayed_jobs delayed_job_active_record delayed_job ruby-on-rails ruby-on-rails-3 heroku delayed-job

ruby-on-rails - stop - rails job work



la cola de delayyed_job no se procesa en Heroku (4)

Estoy ejecutando una aplicación de Rails 3 con delayed_job. El problema que me he encontrado es que aunque la aplicación está agregando trabajos correctamente a la cola, nunca se procesan.

Mi clase

class User < ActiveRecord::Base after_create :send_welcome_email private def send_welcome_email UserMailer.delay.welcome_email(self) end end

Inspeccionando cosas a través de la consola de Rails puedo ver que hay trabajos en la cola. También puedo ver que ha habido 0 intentos para realizar los trabajos. Hacer girar a un trabajador de Heroku no hace que los trabajos sean procesados.

¿Algunas ideas?

¡Gracias!

Editar: Intentando borrar la cola de trabajos como se sugiere a continuación, ejecuté rake jobs:clear y recibí el siguiente error

rake aborted! uninitialized constant Rake::DSL /app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:8:in `<class:TaskLib>'' /app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:6:in `<module:Rake>'' /app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:3:in `<top (required)>'' /app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.0/lib/rake/rdoctask.rb:20:in `<top (required)>'' /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.7/lib/rails/tasks/documentation.rake:1:in `<top (requ ired)>'' /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `block in <top (required)> '' /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:6:in `each'' /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:6:in `<top (required)>'' /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:214:in `initialize_tasks'' /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:139:in `load_tasks'' /app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:77:in `method_missing'' /app/Rakefile:7:in `<top (required)>'' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2373:in `load'' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile'' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile'' /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:1991:in `run'' /usr/ruby1.9.2/bin/rake:31:in `<main>''


¿Está ejecutando el demonio delayed_job en el mismo entorno en el que se ejecuta la aplicación?

Intente trabajar los trabajos manualmente usando:
rake RAILS_ENV=development jobs:work

Si está ejecutando su aplicación en modo de producción, entonces necesita iniciar el demonio de demora_trabajo como sigue:
RAILS_ENV=production script/delayed_job start




Es una posibilidad remota, pero asegúrese de estar usando la misma versión de Ruby en Heroku que en su máquina local. Tuve un problema con los trabajos retrasados ​​en Heroku antes debido a esto.