簡體   English   中英

如何測試帶有Memcache的Heroku上的Rack :: Cache是​​否可與Sinatra應用一起使用?

[英]How do I test if Rack::Cache is functioning with Sinatra app on Heroku with memcache?

我正在制作一個Web應用程序,許多用戶將在其中查看Google地圖,並通過向服務器的Ajax請求提取地圖上的更新。 我希望緩存發送給用戶的響應,因為它涉及從外部服務器抓取數據,並且僅需要每2-3分鍾更新一次。

因此,只要有人請求數據,我便希望在接下來的2-3分鍾內將所有其他用戶的所有后續請求從緩存中提取。 我遵循了本教程該教程詳細說明了如何使用Heroku在Sinatra中設置Rack :: Cache和Dalli gem,並且當我在具有以下內容的頁面上進行測試時,

cache_control :public, max_age: 3000

我可以看到緩存標頭正確傳遞(使用Google Chrome開發者工具),但是如果我單擊刷新,或者如果我從另一台計算機請求頁面,則顯然已重新生成了內容(我放置了Time.now輸出)。 但是,如果我轉到另一個頁面,然后重新輸入URL,則不會重新生成內容。 我認為瀏覽器正在緩存結果,而不是內存緩存服務器? 我對緩存的工作方式是否有基本的誤解?

對於遇到這個問題的人,這里有一些話題可以幫助您解決問題(對我有所幫助)。

瀏覽器中的“刷新”會導致“緩存控件:max-age = 0”: https : //groups.google.com/forum/#!topic /rack-cache/ sWHyu4pYwKw

清除緩存並刪除緩存目錄(這對我有用): https : //github.com/rails/rails/issues/5245

使用rspec /其他Sinatra,Rack :: Test和條件GET請求為其添加規格

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM