1

我想用 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 调度程序。

谢谢。

4

3 回答 3

2

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

scheduler.join

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

于 2012-05-17T21:09:38.550 回答
2

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

RailsAppSpawnerIdleTime 0
PassengerMinInstances 1
于 2013-02-01T11:24:37.953 回答
2

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

生产服务器需要一些额外的设置。在大多数生产 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;
于 2016-04-22T10:35:22.097 回答