WebQube
WebQube

Reputation: 8961

how to detect that you rails app is running from a rails runner

I have this line on my code

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

I want it to run only if i'm running the cron job (with rails runner)

so trying to implement

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

The command is bundle exec rails runner -e production "Transfer.process!"

Upvotes: 2

Views: 395

Answers (1)

inopinatus
inopinatus

Reputation: 3779

Since every Rails application is a Railtie, you can use the Railties API to set a flag at process start time. I have this in my 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

  #...

Then later on you can test this flag:

if Rails.application.config.is_rails_runner
  puts "done clearing for #{@transfer_account.inspect}"
end

Upvotes: 3

Related Questions