ruby-on-rails-rufus调度程序未在生产中运行
作者:互联网
我有在Nginx&下运行的Rails服务器乘客.我的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开始的.我不知道问题出在哪里.
谢谢.
解决方法:
此问题最有可能是由Rufus调度程序后台线程在Phusion Passenger生成子进程(作为智能生成方法的一部分)之后终止而导致的.
读取Spawning methods explained.
您正遭受的特定问题可能是Smart spawning caveat #2: the need to revive threads.
您需要使用文档中的机制来恢复Rufus调度程序线程.我不确定您需要进行哪个API调用,因此也许您可以询问Rufus调度程序作者.
另外,您可以使用“直接”产卵方法.它的效率较低,但是避免了诸如此类的兼容性问题.
标签:linux,ruby-on-rails,scheduled-tasks,passenger 来源: https://codeday.me/bug/20191012/1901975.html