编程语言
首页 > 编程语言> > ruby-on-rails-rufus调度程序未在生产中运行

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开始的.我不知道问题出在哪里.

谢谢.

解决方法:

此问题最有可能是由R​​ufus调度程序后台线程在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