我有一个轨道服务器运行在nginx&乘客。 我的sheduler.rb
看起来像这样
require 'rufus-scheduler' my_awesome_job = Rufus::Scheduler.new my_awesome_job.cron '59 23 * * *' do #do something end
一切工作正常,如果我为未来2-3分钟(testing)设置工作。 但是,这个,因为我需要它在生产中,不是每天23:59开始。 我不知道问题在哪里。
谢谢。
最有可能的是,这个问题是由Rufus调度程序后台线程在Phusion Passenger产生一个子进程作为智能产卵方法的一部分之后被终止引起的。
阅读产卵方法解释 。 您正在遭受的具体问题可能是智能产卵警告#2:需要恢复线程 。
您需要使用文档中的机制来恢复Rufus调度程序线程。 我不确定你需要做哪个API调用,所以也许你可以问Rufus调度程序的作者。
或者,您可以使用“直接”产卵方法。 效率不高,但它避免了这样的兼容性问题。
所以,我在这里找到了答案
我在nginx.conf
添加了这两行(在passenger_enabled on;
之后):
rails_app_spawner_idle_time 0; passenger_min_instances 1;
这使一个乘客线程活跃。