Возможно, вы захотите реализовать Rufus Scheduler как отдельный рабочий процесс вне вашего приложения.
Вместо того, чтобы помещать его в качестве инициализатора, я бы реализовал задачу Rake, которая его запускает.
# Rakefile
desc "Starts the Scheduler worker"
task :scheduler do
require 'path/to/your/scheduler/file'
scheduler.join
end
Затем просто запустите rake scheduler
, чтобы запустить его в фоновом режиме.
Бонус: поскольку вашему приложению теперь требуется 2 процесса рядом, используйте Foreman для управления несколькими процессами вашего приложения.Вы можете сделать это, создав файл с именем Procfile
:
# Procfile
web: thin start -p 4242
scheduler: rake scheduler
Затем запустите ваше приложение с помощью мастера: (сначала убедитесь, что gem install foreman
)
$ foreman start
Это вызоветоба процесса одновременно.