我使用Resque/Redis的resque狀態...如何輸出resque-status的完成百分比?
https://github.com/quirkey/resque-status
我基本上要創建一個新的西納特拉方法..像下面。我只有2個JobsWithStatus,所以它可以返回兩個或特定的一個,我不真的在乎。
post '/getstatus' do
# return status here of all kinds (or specific)
end
然後我想輸出%通過使用該檢查狀態每5秒輪詢定時器前端的jQuery完整。
這是我
post '/refresh' do
job_id = PostSaver.create(:length => Forum.count)
status = Resque::Status.get(job_id)
redirect '/'
end
它說的文件,我可以只使用status.pct_complete中,但它始終返回0?即使那樣,我對ruby並不熟悉,即使IF變量顯示了正確的完成百分比,我也不知道如何在單獨的sinatra條目中(在/ getstatus而不是/ refresh中)創建該變量。然而
我想這和它保持返回0
post '/refresh' do
job_id = PostSaver.create(:length => Forum.count)
status = Resque::Status.get(job_id)
sleep 20
status.pct_complete.to_s
end
謝謝先生!完善。 – Tallboy 2011-12-29 21:25:29
順便說一下,睡眠只是一個測試,讓百分比年齡的時間不是0,我會在單獨的sinatra方法。這是一個基本的問題,關於如何在'/ refresh'方法中使'status'變量可用於其他地方,如'/ getstatus'方法? – Tallboy 2011-12-29 21:26:31
通常你不會在操作之間共享變量。例外情況是,如果你從另一個渲染一個動作(這可能不是你在sinatra中可以做到的事情)。因爲它是ruby,所以你總是可以定義某種狀態方法,然後調用它。我會編輯一些內容,以便了解我的意思。 – 2011-12-29 22:07:57