rufus-scheduler и delayed_job на Heroku: зачем использовать рабочий dyno?

Я разрабатываю приложение Rails 3.2.16 и внедряю его в учетную запись разработчика Heroku с одним бесплатным веб-динамо и без рабочих динамов. Я пытаюсь определить, действительно ли нужен (оплачиваемый) рабочий динамо.

Приложение отправляет различные электронные письма. Я использую delayed_job_active_record, чтобы поставить их в очередь и отправить их.

Мне также нужно проверять количество уведомлений каждую минуту. Для этого я использую rufus-планировщик.

Кажется, что rufus-scheduler может запустить фоновую задачу / потокв веб-динамо Heroku.

С другой стороны, все, что я могу найти в delayed_job, указывает на то, что для этого требуется отдельный рабочий процесс. Зачем? Если rufus-scheduler может запустить демон в веб-dyno, то почему не может delayed_job сделать то же самое?

Я проверил следующее для выполнения моей ежеминутной задачиа также отрабатывает delayed_jobs, и кажется, что он работает в рамках одного веб-динамо Heroku:

конфигурации / инициализаторы / Руфус-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

Это кажется настолько очевидным, что мне интересно, что я что-то упустил? Является ли это приемлемым способом обработки очереди delayed_job без дополнительной сложности и затрат отдельного рабочего процесса?

Обновить

Как указывает @jmettraux, Heroku через час отключит неактивный веб-динамо. Я еще не настроил его, но давайте предположим, что я использую один из различных методов поддержания активности, чтобы он не спал:Простой способ предотвратить Heroku на холостом ходу?.

Ответы на вопрос(1)

Ваш ответ на вопрос