Ruby 我如何测试Rack::Cache是否在Heroku上的Sinatra应用程序和memcache一起运行?

Ruby 我如何测试Rack::Cache是否在Heroku上的Sinatra应用程序和memcache一起运行?,ruby,caching,heroku,memcached,sinatra,Ruby,Caching,Heroku,Memcached,Sinatra,我正在制作一个web应用程序,许多用户将在其中查看Google地图,地图上的更新通过ajax请求拉入服务器。我希望发送给用户的响应被缓存,因为它涉及到从外部服务器抓取数据,并且只需要每2-3分钟更新一次 因此,只要有一个人请求数据,我希望在接下来的2-3分钟内从缓存中提取所有其他用户的后续请求。接下来,我详细介绍了如何使用Heroku在Sinatra中设置Rack::Cache和Dalli gem,当我在设置了以下内容的页面上运行测试时 cache_control :public, max_ag

我正在制作一个web应用程序,许多用户将在其中查看Google地图,地图上的更新通过ajax请求拉入服务器。我希望发送给用户的响应被缓存,因为它涉及到从外部服务器抓取数据,并且只需要每2-3分钟更新一次

因此,只要有一个人请求数据,我希望在接下来的2-3分钟内从缓存中提取所有其他用户的后续请求。接下来,我详细介绍了如何使用Heroku在Sinatra中设置Rack::Cache和Dalli gem,当我在设置了以下内容的页面上运行测试时

cache_control :public, max_age: 3000

我可以正确地看到缓存头(使用Google Chrome Developer工具),但是如果我点击了刷新,或者如果我从另一台计算机请求页面,那么内容显然是重新生成的(我输入了Time.now输出)。但是,如果我转到另一个页面,然后重新键入URL,则不会重新生成内容。我认为浏览器正在缓存结果,而不是memcache服务器?我对缓存的工作原理有一个基本的误解吗?

对于遇到这个问题的人,这里有一些线索可以帮助你解决问题(帮助我)

浏览器中的“刷新”会导致“缓存控制:最大年龄=0”:

正在清除缓存并删除缓存目录(这对我很有效):

使用rspec/other为其添加规范