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