2010-10-01 14 views
5

estoy añadiendo Resque-Scheduler en mi aplicación en HerokuProgramador de Resque en Heroku ... ¿Lo hace de forma remota?

Así que ... necesito uno solo y trabajador distinta que actúa como el planificador y muchos hacer los trabajos.

Esta es la forma en que lo he hecho:
He Heroku una aplicación distinta, que no hace nada, pero tiene 1 trabajador resque-programador, corriendo 24/7, añadiendo Resque tareas a la Redis del DB " distante "principal Aplicación.

(hago que la cartografía puestos de trabajo: Trabajo tarea a resque: planificador o resque: trabajo)

¿Es esta la mejor manera de hacerlo en la plataforma del Heroku; o lo estoy haciendo totalmente mal?

Gracias!

EDIT: aplicación mínima para la programación en Heroku: http://github.com/clmntlxndr/heroku-scheduler

ACTUALIZACIÓN: Con la nueva pila de cedro en Heroku y Procfiles, es posible iniciar una tarea distinta para cada trabajador.

web:  bundle exec rails server -p $PORT 
scheduler: bundle exec rake resque:scheduler 
worker:  bundle exec rake jobs:work 

http://devcenter.heroku.com/articles/procfile

Respuesta

3

Creo que leí mal su pregunta la primera vez. Me perdí la parte donde el programador requiere una tarea de rake por separado.

Sí, creo que la única manera de hacerlo es tener dos aplicaciones heroku separadas, porque los trabajadores heroku solo ejecutarán rake jobs:work y, presumiblemente, solo se puede asignar a una de las tareas de resque rake.

Usted podría intentar esto:

desc "Alias for resque:work (To run workers on Heroku)" 
task "jobs:work" => ["resque:work", "resque:scheduler"] 

Pero tengo dudas acerca más sincero que realmente funciona correctamente con la forma en Heroku supervisa los procesos de trabajo y esas cosas. Además, comprueba la sintaxis de rake allí; es solo de memoria. Sé que es posible especificar múltiples dependencias sin embargo.

+0

¡Sí! La forma en que describo mi pregunta ya casi funciona bien (lo pondré pronto en Github). Me preguntaba si es bueno en el principio, y esperando que alguien me diga "¡Para! Puedes asignar un trabajador distinto en una tarea distinta haciendo eso: ..." :) –

+0

Sí, bastante seguro de que no hay forma de Haz eso. – tfe

+0

FYI: https://github.com/clmntlxndr/heroku-scheduler –

Cuestiones relacionadas