我的代码上有这一行
puts "done clearing for #{@transfer_account.inspect}"
我希望它只在我运行cron作业(带有rails runner)时运行
所以尝试实现
puts_if_runner "done clearing for #{@transfer_account.inspect}"
命令是bundle exec rails 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