我有一个在nginx&乘客。我的sheduler.rb
看起来像这样
require 'rufus-scheduler'
my_awesome_job = Rufus::Scheduler.new
my_awesome_job.cron '59 23 * * *' do
#do something
end
如果我在接下来的2-3分钟内完成工作(测试),一切正常。但是这个,正如我在制作中所需要的那样,并不是每天23:59开始。我不知道问题出在哪里。
感谢。
答案 0 :(得分:0)
最有可能的是,这个问题是由于在Phusion Passenger生成子进程作为智能生成方法的一部分后Rufus调度程序后台线程被终止。
阅读Spawning methods explained。 您遇到的具体问题可能是Smart spawning caveat #2: the need to revive threads。
您需要使用文档中的机制恢复Rufus调度程序线程。我不确定您需要进行哪个API调用,所以也许您可以询问Rufus调度程序作者。
或者,您可以使用“直接”产卵方法。它的效率较低,但它避免了这样的兼容性问题。
答案 1 :(得分:0)
所以,我找到了答案here
我在nginx.conf
(passenger_enabled on;
之后)添加了这两行:
rails_app_spawner_idle_time 0;
passenger_min_instances 1;
这使一个乘客线程保持活动状态。