我的代码中有这一行
puts "done clearing for #{@transfer_account.inspect}"
我希望它仅在我运行 cron 作业(使用 Rails runner)时运行
所以尝试实现
puts_if_runner "done clearing for #{@transfer_account.inspect}"
命令是
bundle execrails runner -e production "Transfer.process!"
最佳答案
由于每个 Rails 应用程序都是 Railtie,因此您可以使用 Railties API 在进程启动时设置一个标志。我的 config/application.rb 中有这个:
class Application < Rails::Application
# Are we in rails runner?
config.is_rails_runner = false
runner do |app|
app.config.is_rails_runner = true
end
#...
稍后您可以测试此标志:
if Rails.application.config.is_rails_runner
puts "done clearing for #{@transfer_account.inspect}"
end
关于ruby-on-rails - 如何检测您的 Rails 应用程序是否正在从 Rails 运行程序运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26095275/