Pergunta

Estou adicionando Resque-Scheduler No meu aplicativo no Heroku

Então ... eu preciso de um trabalhador sozinho e distinto atuando como o agendador e muitos fazendo os empregos.

Foi assim que eu fiz:
Eu tenho um aplicativo Heroku distinto que não faz nada além de 1 trabalhador resque-scheduler, executando 24 horas por dia, 7 dias por semana, adicionando Resque tarefas para o Redis DB do "distante" a Principal Aplicativo.

(Eu faço esse mapeamento Empregos: trabalho tarefa para Resque: Scheduler ou Resque: trabalho)

Essa é a melhor maneira de fazê -lo na plataforma do Heroku; Ou estou fazendo isso totalmente errado?

Obrigado !

Editar: App mínimo para agendamento no Heroku:http://github.com/clmntlxndr/heroku-scheduler

ATUALIZAÇÃO: Com a nova pilha de cedro em Heroku e Procfiles, é possível iniciar uma tarefa distinta para cada trabalhador.

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

Foi útil?

Solução

Acho que interpretei mal sua pergunta pela primeira vez. Perdi a parte em que o agendador exige uma tarefa de rake separada.

Sim, acho que a única maneira de fazer isso é ter dois aplicativos Heroku separados, porque os trabalhadores da Heroku só funcionarão rake jobs:work E presumivelmente você só pode mapear isso em uma das tarefas do Rake.

Você poderia tentar o seguinte:

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

Mas tenho dúvidas sinceras sobre isso realmente funcionando corretamente com a forma como a Heroku monitora os processos e outras coisas dos trabalhadores. Além disso, verifique a sintaxe da rake lá; É apenas da memória. Eu sei que é possível especificar várias dependências.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top