6

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

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

谢谢

4

3 回答 3

7

当我使用 rufus-scheduler 和延迟作业时,我遇到了同样的问题。

我用这个:

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

在 Rails 4 中测试

于 2013-10-17T02:48:08.417 回答
6

基于Rails 检查 IRB 控制台或网页

unless self.private_methods.include? 'irb_binding'
  #put your rufus scheduling here
end
于 2011-06-13T17:01:18.750 回答
1

根据此处rufus-scheduler 的修订文档:

如果您不希望 rufus-scheduler 在运行 Ruby on Rails 控制台或调用 rake 任务时启动,您可以将初始化程序包装在条件中:

unless defined?(Rails::Console) || File.split($0).last == 'rake'
  # your code here
end
于 2017-04-03T11:41:59.870 回答