启动rails控制台时不运行rufus-scheduler的最佳方法
我使用rufus-scheduler来运行一些周期性任务,但是当我只是想测试时它们在rails控制台中非常烦人。 有没有一种简单的方法可以在自动启动控制台时停止所有rufus-scheduler任务?
在启动调度程序的代码中,如果我可以检查我只是在rails控制台中我无法运行它们,或者如果有一种方法在控制台启动时运行一些回调,我也可以在那里关闭它们。
谢谢
基于Rails检查IRB控制台或网页 :
unless self.private_methods.include? 'irb_binding' #put your rufus scheduling here end
当我使用rufus-scheduler和delayed-jobs时,我遇到了同样的问题。
我用过这个:
unless defined?(Rake) || defined?(IRB) # your code here end
在Rails中测试4
根据rufus-scheduler的修订文档:
如果您不希望rufus-scheduler在运行Ruby on Rails控制台或调用rake任务时启动,则可以将初始化程序包装在条件中:
unless defined?(Rails::Console) || File.split($0).last == 'rake' # your code here end