rufus-scheduler e delayed_job no Heroku: por que usar um dinamômetro de trabalhador?

Estou desenvolvendo um aplicativo Rails 3.2.16 e implantando em uma conta de desenvolvedor Heroku com um dinamômetro da web gratuito e sem dynos de trabalho. Estou tentando determinar se é realmente necessário um dinamômetro (pago).

O aplicativo envia vários e-mails. Eu uso delayed_job_active_record para enfileirá-los e enviá-los.

Também preciso verificar uma contagem de notificações a cada minuto. Para isso, estou usando o rufus-scheduler.

O rufus-scheduler parece capaz de executar uma tarefa / thread em segundo planodentro um dinossauro da Web Heroku.

Por outro lado, tudo o que posso encontrar em delayed_job indica que ele requer um processo de trabalho separado. Por quê? Se o rufus-scheduler pode executar um daemon dentro de um dinamômetro da Web, por que o delayed_job não pode fazer o mesmo?

Eu testei o seguinte para executar minha tarefa a cada minutoe trabalhando em delayed_jobs, e parece funcionar no único dyno da Web Heroku:

config / inicializadores / rufus-scheduler.rb

require 'rufus-scheduler'
require 'delayed/command'

s = Rufus::Scheduler.singleton
s.every '1m', :overlap => false do # Every minute
  Rails.logger.info ">> #{Time.now}:  rufus-scheduler task started"
  # Check for pending notifications and queue to delayed_job
  User.send_pending_notifications
  # work off delayed_jobs without a separate worker process
  Delayed::Worker.new.work_off  
end

Isso parece tão óbvio que estou me perguntando se estou perdendo alguma coisa. Essa é uma maneira aceitável de lidar com a fila delayed_job sem a complexidade e as despesas adicionais de um processo de trabalho separado?

Atualizar

Como o @jmettraux aponta, o Heroku inativa um dinamômetro da web inativo após uma hora. Ainda não o configurei, mas vamos assumir que estou usando um dos vários métodos keep-alive para impedir que ele durma:Maneira fácil de impedir que o Heroku fique ocioso?.

questionAnswers(1)

yourAnswerToTheQuestion