我使用rufus-scheduler来运行一些周期性任务,但是当我只是想测试时,它们在rails控制台中非常烦人。有没有一种简单的方法可以在自动启动控制台时停止所有rufus-scheduler任务?
在启动调度程序的代码中,如果我可以检查我是否只是在rails控制台中我无法运行它们,或者如果在控制台启动时有一种方法可以运行某些回调,我也可以将它们关闭。
由于
答案 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