繁体   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