2012-04-19 80 views
0

地狱大家。我需要一些我正在编写的ruby脚本的帮助,似乎没有工作。简而言之,当使用Rufus来安排在某个特定时间发生的事情时,我会收到一个错误。在Rufus调度程序不工作的情况下安排Ruby的工作

这是我的代码。

starttime = Time.new + (60) 
    scheduler = Rufus::Scheduler.start_new 
    scheduler.at starttime do 
    Curl::Easy.download(url, filename = "/tmp/test.xml") 
    end 

虽然这样的作品,它的错误了它的第一个与运行后如下:

================================================================================ 
scheduler caught exception: 
can't convert nil into String 
/Users/me/.gem/ruby/1.9.1/gems/curb-0.8.0/lib/curl/easy.rb:38:in `add' 
/Users/me/.gem/ruby/1.9.1/gems/curb-0.8.0/lib/curl/easy.rb:38:in `perform' 
/Users/me/.gem/ruby/1.9.1/gems/curb-0.8.0/lib/curl/easy.rb:358:in `download' 
/Users/me/Dropbox/Files/Personal/RubyMine/hbo_hackathon/SOME:19:in `block (2 levels) in <top (required)>' 

我是很新的红宝石(和一般的发展),所以我不知道这是为什么发生。有人可以帮忙吗?

而且,真正的目标是取代这一行:

starttime = Time.new + (60) 

这一行:

starttime = REXML::XPath.first(doc, '/new/time/text()') 

这样做的原因,是因为我想拉一个动态超时的一些XML(在这种情况下,来自我订阅的Amazon SQS队列的消息),并告诉它在特定时间卷曲URL。这是我试图让这个工作的真正原因。

当我尝试从XML传递时间时,出现完全不同的错误。我尝试过发送每种类型的时间格式,但它仍然给我一个错误。请帮忙!

/Users/me/.gem/ruby/1.9.1/gems/rufus-scheduler-2.0.16/lib/rufus/sc/rtime.rb:327:in `at_to_f': cannot determine 'at' time from : "1334865999.4416242" (ArgumentError) 
    from /Users/me/.gem/ruby/1.9.1/gems/rufus-scheduler-2.0.16/lib/rufus/sc/jobs.rb:253:in `determine_at' 
    from /Users/me/.gem/ruby/1.9.1/gems/rufus-scheduler-2.0.16/lib/rufus/sc/jobs.rb:90:in `initialize' 
    from /Users/me/.gem/ruby/1.9.1/gems/rufus-scheduler-2.0.16/lib/rufus/sc/me.rb:149:in `new' 
    from /Users/me/.gem/ruby/1.9.1/gems/rufus-scheduler-2.0.16/lib/rufus/sc/scheduler.rb:149:in `at' 
    from /Users/me/Dropbox/Files/Personal/RubyMine/hbo_hackathon/SOME:18:in `block in <top (required)>' 

回答

1

OK,

第一个错误是没有关系的鲁弗斯调度。这可能是你将一个零“url”传递给Curl库。

第二个错误

不能确定“在”时间距离“1334865999.4416242”(引发ArgumentError)

是鲁弗斯调度抱怨获得通过字符串它不能变成一个时间点。

尝试像

starttime = REXML::XPath.first(doc, '/new/time/text()').to_f 

所以,总结一下,你看到两个不同的错误。一个接一个地修复它们。从内心开始:Curl抱怨一些零而不是一个字符串,然后看看开始时间问题。

干杯,

约翰

+1

感谢约翰!我能够弄清楚第一个问题,当通过URL卷曲时,我确实遇到了问题。至于第二个问题,我会再试一次,再次感谢! – fattastic 2012-04-22 00:05:00

相关问题