Лучший способ не запускать rufus-планировщик при запуске консоли rails - PullRequest
6 голосов
/ 05 мая 2011

Я использую rufus-scheduler для запуска некоторых периодических задач, но их крайне раздражает наличие в консоли rails, когда я просто хочу что-то протестировать. Есть ли простой способ остановить все задачи rufus-scheduler при автоматическом запуске консоли?

В коде, который запускает планировщик, если я могу проверить, что я просто в консоли rails, я не могу их запустить, или если есть способ запустить некоторые обратные вызовы при запуске консоли, я также могу отключить их там.

Спасибо

Ответы [ 3 ]

7 голосов
/ 17 октября 2013

У меня была та же проблема, когда я использовал rufus-планировщик и отложенные задания.

Я использовал это:

unless defined?(Rake) || defined?(IRB)
  # your code here
end

Проверено в Rails 4

6 голосов
/ 13 июня 2011

На основе Рельсы проверяют, если консоль IRB или веб-страница :

unless self.private_methods.include? 'irb_binding'
  #put your rufus scheduling here
end
1 голос
/ 03 апреля 2017

Согласно пересмотренной документации для rufus-планировщика здесь :

Если вы не хотите, чтобы rufus-планировщик включался при запуске Ruby на Консоль Rails или вызов грабли, вы можете обернуть ваш инициализатор в условном:

unless defined?(Rails::Console) || File.split($0).last == 'rake'
  # your code here
end
...