2014-02-15 2 views
0

Я пытаюсь использовать rufus-scheduler gem на рельсах для настройки некоторых задач (отправляйте почту каждый час). Я установил камень и создал config/initializer/task_scheduler.rb с:Как предполагается работать rufus-scheduler на рельсах?

require 'rubygems' 
require 'rufus/scheduler' 
scheduler = Rufus::Scheduler.start_new 
scheduler.every("1h") do 
    Rule.all.each do |r| 
     RuleMailer.report_email(r).deliver 
    end 
end 

Но я не могу понять, что это следующий шаг. Как это будет работать? должен ли я настроить cron? это запущено веб-сервером? rails s, или rake task, или что.

Я не понимаю, и я не могу найти информацию.

ответ

0

Это будет работать с использованием every.

Rufus-scheduler поддерживает пять видов рабочих мест. in, at, every, interval и cron jobs.

На странице https://github.com/jmettraux/rufus-scheduler показаны примеры различных применений в различных блоках. Если вы хотите использовать cron, он будет больше похож на этот scheduler.cron '00 09 * * *' do (прямо из примера, а не на ваш интервал).

+0

Я не понимаю, я имею в виду, что я уже сделал «каждый» блок, но что сделает этот код выполненным? должен ли я запускать скрипт ruby ​​что-то или что? Я имею в виду, это файл .rb, он должен быть выполнен для запуска, если не выполняется, не имеет значения, какой код у меня он никогда не будет запущен. –

+0

Он должен работать так, как будто у вас есть его в инициализаторе ... Разве это не так? –

+0

Да, у меня есть это на инициализаторе, так что это выполняется веб-сервером? –

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