Hell everyone。私が書いているルビースクリプトには、うまくいかないような助けが必要です。簡単に言えば、Rufusを使用して特定の時間に何かが起きるようにスケジュールを設定すると、エラーが発生します。rufus-schedulerで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 = REXML::XPath.first(doc, '/new/time/text()')
理由私は外の動的な時間を引き出したいからである。このラインで
starttime = Time.new + (60)
:
また、ここでの本当の目標は、この行を置き換えることですいくつかの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)>'
おかげジョン!私は最初の問題を理解することができました。本当にカールするURLを渡すときに問題が発生しました。 2番目の問題については、もう一度お試しください! – fattastic