我的代码上有这一行
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!"
答案 0 :(得分:1)
由于每个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