Reputation: 21795
I am doing this in my Rails console:
job = scheduler.at 1.minute.from_now do Service.log.debug 'scheduler works' end
job.schedule_info
=> Wed, 07 Aug 2013 16:14:46 UTC 00:00
scheduler
is defined in other file:
require 'rubygems'
require 'rufus/scheduler'
def scheduler
@scheduler ||= Rufus::Scheduler.start_new
end
And when I run in console:
Service.log.debug 'scheduler works'
Service log file is written.
scheduler.at 1.minute.from_now do Service.log.debug 'scheduler works' end
Does not write in the log after a minute. What am I missing? How could I debug this?
I have a server in EC2 that seems is shutdown and scheduled tasks are not run.
Thing is that in my development environment I test with a task running in one minute and it works. This is in server not in console. In console, as I mentioned is failing.
ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.0.0]
Thin 1.5.0
ruby 1.9.3p429 (2013-05-15 revision 40747) [x86_64-linux]
apache2 2.2.22
passenger 4.0.5
rails 3.2.8
rufus-scheduler 2.0.18
Upvotes: 1
Views: 7006
Reputation: 78
I had to use the "PassengerSpawnMethod direct" setting in my Apache VirtualHost for my Dashing application (which uses rufus-scheduler) to get it to work correctly.
Upvotes: 2
Reputation: 3551
That's a classic:
https://groups.google.com/group/rufus-ruby/search?group=rufus-ruby&q=passenger&pli=1 https://groups.google.com/forum/#!searchin/rufus-ruby/passenger (new google groups)
(unfortunately, most of the links in those discussions are dead (4 years ago...))
You'll have to check your Passenger configuration to see how it behaves. You'll have to make sure the process where the rufus-scheduler thread is started is preserved somehow.
Take the time to read the Passenger configuration / manual and experiment tuning it.
I vaguely remember that those could help:
http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerPoolIdleTime http://www.modrails.com/documentation/Users%20guide%20Apache.html#PassengerMinInstances
Ajet's answer in Rufus Scheduler not running is interesting, he advocates:
RailsAppSpawnerIdleTime 0
PassengerMinInstances 1
Upvotes: 2