Rufus Scheduler未运行

时间:2012-05-17 18:06:15

标签: ruby-on-rails cron rufus-scheduler

我想用gem rufus-scheduler做一些简单的事情: https://github.com/jmettraux/rufus-scheduler

但是,我无法让它发挥作用。

我有一个常规的rails应用程序。我创建了一个.rb文件:

# test_rufus_scheduler.rb
require 'rubygems'
require 'rufus/scheduler'

scheduler = Rufus::Scheduler.start_new

scheduler.in '1s' do
  puts "hello world"
end

然后,当我尝试ruby test_rufus_scheduler.rb时,没有任何反应。我做得对吗?宝石列表显示rufus-scheduler。

感谢。

3 个答案:

答案 0 :(得分:2)

如果您的脚本立即退出,请尝试添加

scheduler.join

最后。请注意,单独运行脚本并通过rails运行时会有所不同。有关详细信息,请参阅README

答案 1 :(得分:2)

找到了这个here的解决方案(也与上面Ajet's的答案同步)。

  

生产服务器需要一些额外的设置。在大多数生产Web服务器上,空闲的Ruby进程被终止。为了让Rufus工作,你需要阻止这种情况发生。对于Passenger / Nginx,您可以将以下代码复制到您网站的 nginx.conf 配置文件中,该文件位于 passenger_enabled on; 后面。

<强> nginx.conf:

passenger_spawn_method direct;
passenger_min_instances 1;
passenger_pool_idle_time 0;

答案 2 :(得分:1)

将以下行添加到apache2配置并重新启动apache2服务器

RailsAppSpawnerIdleTime 0
PassengerMinInstances 1