我有一項任務需要大約20至30秒。我想讓這個任務在渲染視圖後立即運行。我希望將此任務的輸出存儲在會話變量中。什麼是最簡單的方法來實現它3.如何在視圖渲染完成後調用方法3
爲了解釋我需要的東西。我向用戶展示了一個推文列表(這是呈現的視圖)他們必須通過他們。我想要一個方法在呈現這個視圖後被調用,它將採用相同的推文並將它們集羣(20-30秒的過程)。我應該在會話中獲得聚類結果,以便我可以在下一頁中顯示它們。
我該怎麼做?
我有一項任務需要大約20至30秒。我想讓這個任務在渲染視圖後立即運行。我希望將此任務的輸出存儲在會話變量中。什麼是最簡單的方法來實現它3.如何在視圖渲染完成後調用方法3
爲了解釋我需要的東西。我向用戶展示了一個推文列表(這是呈現的視圖)他們必須通過他們。我想要一個方法在呈現這個視圖後被調用,它將採用相同的推文並將它們集羣(20-30秒的過程)。我應該在會話中獲得聚類結果,以便我可以在下一頁中顯示它們。
我該怎麼做?
這是我如何解決我的後臺任務所用resque
問題
這並不完美,但對於研究反饋收集工具來說足夠快。
您應該可以在呈現視圖的控制器方法中執行此操作。只需在'render'調用後添加代碼即可。例如:
def index
@tweets = Tweet.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @tweets }
end
# do something with tweets
puts "#{@tweets}"
end
如果視圖已被渲染,該任務如何將結果存儲到會話中? (請記住,會話現在默認作爲_cookie_處理......) – sarnold 2012-04-23 00:00:13
在我的情況下,會話由active_record處理。即使我可以運行一種方法,我也可以。我現在將把結果存儲在一些簡單的tmp文件中。 – shishirmk 2012-04-23 00:04:55
我認爲我的答案是使用Resque或任何後臺作業。 – shishirmk 2012-10-25 23:53:30