Существуют различия.
Rufus-планировщик every
будет пытаться запускаться каждые 1 с, поэтому при t0 + 1, t0 + 2, t0 + 3 и т. Д. Пока будет работать вариант "сна"в t0, t0 + wt1 + 1, t0 + wt1 + 1 + wt2 + 1, ... (где wtN = время работы для N-го вызова puts hello
).
Rufus-планировщик every
будетиспользуйте рабочие потоки rufus-scheduler, чтобы при наличии перекрытия (wt (Nb)> wt (Na)) Nb все равно возникал.Это поведение может быть изменено (см. параметры задания ).
Rufus-планировщик interval
ближе к вашей опции сна:
scheduler.interval('1s') { puts 'hello' }
Устанавливает 1 секунду (или любой другой промежуток времени, который вы хотите) между каждым прогоном puts 'hello'
.
Для простого цикла do-sleep я бы выбрал опцию sleep.Но если вам нужно больше, у rufus-scheduler есть cron
, interval
, every
и опции настройки для них.И вы можете запланировать несколько заданий.
scheduler.cron('0 1 1 * *') do
# every first of the month at 1am
flush_archive
end
scheduler.cron('0 8,13,19 * * mon-fri') do
# every weekday at 8am, 1pm, 7pm
clean_dishes
end
scheduler.interval('1s') do
puts 'hello'
end