2013-06-19 37 views
0

我有一個簡單的博客應用程序,放在Heroku的免費5GB空間上。當我發送請求併發送請求時,響應時間很快,我得到一個響應。Heroku - 極慢放置請求更新

同樣的事情發生在我的放置請求(在我的應用程序中指定的標準302重定向,完美地在我的本地服務器上工作)。然而,我的頁面不會隨着新的信息更新,直到分鐘,有時在實際頁面上稍後幾分鐘(約10-20分鐘)。

更新我看了看我的英雄導軌控制檯,似乎信息更新了。我相信它可能是瀏覽器/緩存問題,但我不確定爲什麼?

我不太清楚爲什麼會發生這種情況。這是我的文章控制器中的更新代碼。

def update 
    @article = Article.find(params[:id]) 

    respond_to do |format| 
    if @article.update_attributes(params[:article]) 
     format.html { redirect_to(@article, :notice => 'Article was successfully updated.') } 
     format.xml { head :ok } 
    else 
     format.html { render :action => "edit" } 
     format.xml { render :xml => @article.errors, :status => :unprocessable_entity } 
    end 
    end 
end 

按照要求,這裏是我的尾巴日誌的PUT請求部分。

2013-06-19T01:13:01.124408+00:00 app[web.1]: Started PUT "/articles/5-Literary- 
Compositions-" for 99.232.11.181 at 2013-06-19 01:13:01 +0000 

2013-06-19T01:13:01.445438+00:00 heroku[router]: at=info method=POST path=/articles/5- 
Literary-Compositions- host=hidden-taiga-5779.herokuapp.com fwd="99.232.11.181" dyno=web.1 
connect=2ms service=516ms status=302 bytes=138 


2013-06-19T01:13:01.443470+00:00 app[web.1]: Processing by ArticlesController#update as HTML 

2013-06-19T01:13:01.443470+00:00 app[web.1]: #post information was in here, large post 


2013-06-19T01:13:01.443470+00:00 app[web.1]: 
Redirected to http://hidden-taiga-5779.herokuapp.com/articles/5-Literary-Compositions- 


2013-06-19T01:13:01.443470+00:00 app[web.1]: Completed 302 Found in 279ms (ActiveRecord: 71.2ms) 
+2

你能顯示Heroku日誌嗎?運行'heroku日誌'這會告訴你可能會發生什麼。從外觀上看,我不明白爲什麼你的'update'方法有問題。 – David

+0

更新了原文帖子 – ebbflowgo

+0

也許這是瀏覽器或緩存問題?在我的heroku導軌控制檯中,信息是正確的。 – ebbflowgo

回答

1

想要添加到您的答案,但我相信你可以在你的控制器上有cache_action :show,它只是一個設置正確的問題。我注意到了Building a Rails 3 Application with Memcache。不知道您是否閱讀了這篇文章,但是這會告訴您如何使用heroku MemCachier插件設置您的應用程序。由於installation會帶你完成你需要知道的內容。但有些事情告訴我,您可能沒有安裝Memcahcier插件並對其進行配置。如果您沒有這樣做,那麼請務必將cached_action :show放回您的blog_controller並安裝附加和檢查結果。

+1

謝謝,我會考慮將其添加回來。在閱讀文章後,聽起來像在附加組件中添加應該可以緩解上述問題。 – ebbflowgo

0

我發現,在博客控制器是一個行:

cached_action :show 

從文件ActionController

動作緩存是由事實相似的頁面緩存是的整個輸出響應被緩存,但與頁面緩存不同,每個請求仍然通過Action Pack。這樣做的關鍵好處是過濾器在緩存服務之前運行,這允許對是否允許某人執行此類操作進行身份驗證和其他限制。

我把它拿出來,它再次正常工作。謝謝您的幫助。希望這篇文章能夠幫助其他人。