ACTUALIZACIÓN: Ha habido un parche para este problema: https://github.com/collectiveidea/delayed_job/commit/023444424166ba2ce011bfe2d47954e79edf6798NoMethodError con delayed_job (joya collectiveidea)
ACTUALIZACIÓN 2: Para cualquier persona corriendo en este tema en Heroku específicamente, he encontrado la degradación hasta Rastrillo 0.8. 7 y el uso de tareas retrasadas versión 2.1.4 funciona, mientras que el trabajo retrasado v3 no lo hace (aunque con el parche funciona en local). Esto está en la pila Bamboo-mri-1.9.2.
Estoy tratando de implementar delayed_job en una aplicación de rails 3.1.0 localmente. Me encontré con la migración y instalado los archivos de la gema:
gem 'delayed_job'
gem 'delayed_job_active_record'
Después de la documentación sobre el github collectiveidea (https://github.com/collectiveidea/delayed_job). Estoy haciendo la llamada retraso de mi controlador de la siguiente manera:
EventMailer.delay.event_message_email(current_user, @event_message)
Esto hace que la tarea que se añade a la mesa de trabajo, pero cuando corro puestos de trabajo del rastrillo: trabajar registra el siguiente error:
Class#event_message_email failed with NoMethodError: undefined method `event_message_email' for Class:Class - 6 failed attempts
He consultado las otras preguntas de error de retardo_trabajo NoMethod en SO, pero ninguna soluciona este error específico ni proporciona una solución. La página collectiveidea menciona que este formato sin la llamada al método de entrega es un truco para la configuración de los envíos de Rails 3, por lo que me pregunto si esta documentación puede estar un poco desactualizada y si existe una nueva forma de llamar a los métodos de envío por correo.
Actualización: también llama al método de envío de correo sin demoras funciona bien, y lo estoy ejecutando en el servidor de rieles predeterminado por lo que el problema con Thin mencionado en el colectivo faq preguntas no se aplica. Gracias
cuándo fue la última vez que se reinicia sus 'puestos de trabajo del rastrillo: work' tarea? Es necesario reiniciar después de cada cambio de código. ¿El – iwasrobbed
EventMailer.event_message_email (current_user, @event_message) .delay.deliver trabajo? – Unixmonkey
@iWasRobbed: sí, lo he intentado – tks