启动rails控制台时不运行rufus-scheduler的最佳方法

时间:2011-05-04 22:23:31

标签: ruby-on-rails rufus-scheduler

我使用rufus-scheduler来运行一些周期性任务,但是当我只是想测试时,它们在rails控制台中非常烦人。有没有一种简单的方法可以在自动启动控制台时停止所有rufus-scheduler任务?

在启动调度程序的代码中,如果我可以检查我是否只是在rails控制台中我无法运行它们,或者如果在控制台启动时有一种方法可以运行某些回调,我也可以将它们关闭。

由于

3 个答案:

答案 0 :(得分:7)

当我使用rufus-scheduler和delayed-jobs时,我遇到了同样的问题。

我用过这个:

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

在Rails 4中测试

答案 1 :(得分:6)

基于Rails check if IRB console or webpage

unless self.private_methods.include? 'irb_binding'
  #put your rufus scheduling here
end

答案 2 :(得分:1)

根据rufus-scheduler here的修订文档:

  

如果你不想在运行Ruby时启用rufus-scheduler   Rails控制台或调用rake任务,你可以包装初始化程序   在有条件的:

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