2014-09-29 61 views
1

我有我的代碼如何檢測你的Rails應用程序從軌道亞軍

puts "done clearing for #{@transfer_account.inspect}" 

我想,如果我運行cron作業它只跑這條線運行(與軌道亞軍)

所以想實現

puts_if_runner "done clearing for #{@transfer_account.inspect}" 

的命令是 bundle exec rails runner -e production "Transfer.process!"

+0

帶或不帶導軌跑步嗎? – emaillenin 2014-09-29 08:36:10

+0

如果由runner運行 - 輸出,如果不是由runner運行 - 不輸出 – WebQube 2014-09-29 08:38:42

+0

如何調用crontab命令? – emaillenin 2014-09-29 08:39:56

回答

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