2010-01-13 3 views
2

Я строю проект Rails, у которого есть задание типа cron, с которым я работаю с Rufus Scheduler. У меня есть два вопроса о том, как правильно настроить это в Rails:Где я должен помещать фоновые процессы в рельсы?

  1. Где лучше всего разместить код работы?
  2. Где я должен поместить код Rufus для планирования задания? Как мне его отпустить?

ответ

2

Для управления планировщиком я хотел бы создать config/initializers/task_scheduler.rb:

task_scheduler = Rufus::Scheduler.start_new 

task_scheduler.every("1m") do 
    Something.to_do! # Do something every minute! 
end 

Теперь для Something.to_do кода, такого рода зависит от того, что он делает. Возможно, это модель данных, и она должна идти в каталоге app/models, но если это нечто более общее, вы можете поместить его в lib/. Если вы завершаете ряд запланированных задач, вам может понадобиться создать каталог app/scheduled_tasks, но это может быть излишним только для одного файла.

+0

Несмотря на то, что это решение является простым, будут возникать проблемы при развертывании приложения rails на многопроцессорном сервере, таком как единорог или пассажир, ваша работа может выполняться несколько раз. – Antony

Смежные вопросы