1

好。我正在尝试在 ruby​​ 中编写简单的调度程序,只是简单的脚本一旦启动就会为 ex。分钟做我想做的事。

我已经在 Ruby On Rails 中使用了 rufus-scheduler,但这次我并不需要所有框架,因为它只是简单的脚本。

所以,我写了这样的东西:

require 'rubygems'; require 'rufus/scheduler'

scheduler = Rufus::Scheduler.start_new

scheduler.every '5s' do
    puts "Helo"
end

当我启动它时(我使用的是 Win Vista)它实际上什么也没做。

D:\>ruby scheduler.rb

D:\>

我已经在 irb 中检查了这个,并且......它有效。

irb(main):002:0> require 'rubygems'; require 'rufus/scheduler'
=> true
irb(main):003:0> scheduler = Rufus::Scheduler.start_new
=> #<Rufus::Scheduler::PlainScheduler: [...]
irb(main):004:0> scheduler.every '5s' do
irb(main):005:1* puts "Hello"
irb(main):006:1> end
=> #<Rufus::Scheduler::EveryJob:0x2e6fcb0 @scheduler=#<Ruf [...]
irb(main):007:0> Hello
Hello
Hello

有人可以帮我弄这个吗?提前致谢。

4

1 回答 1

5

最后,我想出了如何解决这个问题。简单的说

scheduler.join

在脚本的末尾。

这是一个关于类似问题的线程:) https://groups.google.com/forum/?fromgroups#!topic/rufus-ruby/37DLuN2W_0w

于 2012-07-28T15:19:47.947 回答