【问题标题】:Rails - Passenger and Nginx preventing rufus-scheduler from scheduling in production modeRails - 乘客和 Nginx 防止 rufus-scheduler 在生产模式下调度
【发布时间】:2015-01-07 14:02:44
【问题描述】:

我正在使用 Rufus Scheduler 每 2 分钟调用一次函数。

在开发模式下,使用 WEBrick 运行 rufus 调度程序时,系统按预期工作,我的函数每 2 分钟调用一次。

当我部署到运行乘客和 NGINX 的生产服务器时,调度程序不再调用该函数。

我假设这与线程有关,调度程序运行在一个单独的线程上,该线程可能会在我们的生产服务器上被破坏。

我在同时使用Passenger 和Apache 时看到了类似问题的答案,但我无法想出一个解决方案来在生产模式下运行rufus 调度程序和Passenger 和NGINX。

任何帮助将不胜感激。

下面的代码设置 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:

【问题讨论】:

    标签: ruby-on-rails nginx passenger rufus-scheduler


    【解决方案1】:

    请阅读 rufus-scheduler 常见问题解答。

    https://github.com/jmettraux/rufus-scheduler#faq

    它包含有关Passenger + rufus-scheduler的(旧)文章的链接

    在他们当中,Passenger 的一位作者的这个 SO 回答可能会有所帮助:

    rufus cron job not working in Apache/Passenger

    玩得开心。

    【讨论】:

      猜你喜欢
      • 2014-11-09
      • 2015-06-30
      • 2017-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多