Hell all. Мне нужна помощь с рубиновым скриптом, который я пишу, который, похоже, не работает. Проще говоря, я получаю сообщение об ошибке при использовании Rufus, чтобы запланировать, чтобы что-то произошло «в» определенное время.Планирование работы в Ruby с rufus-scheduler не работает
Вот мой код.
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)>'
Я довольно новыми для Ruby (и развития в целом), так что я не знаю, почему это происходит. Может кто-нибудь помочь, пожалуйста?
Кроме того, реальная цель здесь заменить эту строку:
starttime = Time.new + (60)
С этой линией:
starttime = REXML::XPath.first(doc, '/new/time/text()')
Причина для этого, потому что я хочу, чтобы тянуть динамический тайм-аут некоторый XML (в данном случае сообщение из очереди SQS Amazon, на которую я подписал), и скажите, чтобы он завивал 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)>'
Спасибо Джон! Я смог разобраться с первой проблемой, у меня действительно возникла проблема при передаче URL-адреса для завивки. Что касается второго вопроса, я попробую это, еще раз спасибо! – fattastic