wasim shaikh
wasim shaikh

Reputation: 31

Rufus Scheduler not running in production Nginx/Passenger

I have a Rails app running on Nginx/Passenger. It has a rufus-scheduler cron job that runs in the background and sends out notifications via email.

When I start up the app in production on Nginx/Passenger, the emails don't get sent. In the production logs it doesn't show any logs for rufus-scheduler.

I'm stuck in this problem. Not able to debug the scheduler.

But after reading some issues & articles, I am sure that scheduler thread is kill on production by passenger.

Code snippet:

Example:

require 'rufus-scheduler'

scheduler = Rufus::Scheduler::singleton

scheduler.cron '0 12 * * *' do
  puts "alert scheduler called at"
  puts Time.now
  system("rake trigger:email RAILS_ENV=production")
end

Kindly help me on the conf for the passenger/nginx that allow the scheduler thread to run & trigger the mails.

Upvotes: 0

Views: 504

Answers (1)

Keval
Keval

Reputation: 3326

You need to set this in passanger config block

passenger_spawn_method direct;

Upvotes: 1

Related Questions