我使用Rufus Scheduler每2分钟调用一次函数。
在使用WEBrick运行rufus调度程序的开发模式下,系统按预期工作,每隔2分钟调用一次函数。
当我部署到运行乘客和NGINX的生产服务器时,调度程序不再调用该函数。
我假设这与线程有关,调度程序运行在可能在我们的生产服务器上销毁的单独线程上。
在使用Passenger和Apache时,我已经看到了类似问题的答案,但我无法提出在生产模式下使用乘客和NGINX运行rufus调度程序的解决方案。
任何帮助都将不胜感激。
以下代码设置rufus
# :nocov:
require 'rufus-scheduler'
include TwitterParser
unless ENV['NODAEMON'] || Rails.env != 'production'
scheduler = Rufus::Scheduler.new
TwitterParser.set_up
scheduler.every '2m' do
begin
TwitterParser.parse_tweets
rescue Twitter::Error::TooManyRequests => error
puts 'Too Many Twitter requests, resets in: ' + error.rate_limit.reset_in.to_s
end
end
end
# :nocov:
答案 0 :(得分:0)
请阅读rufus-scheduler常见问题解答。
https://github.com/jmettraux/rufus-scheduler#faq
它包含有关Passenger + rufus-scheduler
的(旧)文章的链接Amog他们,乘客的一位作者的回答可能有所帮助:
rufus cron job not working in Apache/Passenger
玩得开心。