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时,没有任何反应。 我做得对吗? gem列表显示rufus-scheduler。

谢谢。

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

scheduler.join

在末尾。 请注意,单独运行脚本和通过rails运行时会有所不同。 有关详细信息,请参阅自述文件 。

在这里找到了解决方案(这也与Ajet上面的答案同步)。

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

nginx.conf:

 passenger_spawn_method direct; passenger_min_instances 1; passenger_pool_idle_time 0; 

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

 RailsAppSpawnerIdleTime 0 PassengerMinInstances 1