开始API缓存
有人能指出我正确的技术与缓存API响应有关。
我已经通过许多现有的问题,指南,post,但某些关键因素不能正常工作。
模型
class Cleartrip include HTTParty debug_output $stdout base_uri "api.staging.cleartrip.com/air/1.0/search" headers 'X-CT-API-KEY' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxx' format :xml def self.get_flight(url) Rails.cache.fetch(url, :expires => 1.hour) do response = get(url) if response.success? response else raise response.message end end end end
调节器
@flight = Cleartrip.get_flight("?from=DEL&to=BLR&depart-date=2014-08-10&adults=1&children=0&infants=0")
Development.rb
config.cache_classes = false # Do not eager load code on boot. config.eager_load = false # Show full error reports and disable caching. config.consider_all_requests_local = true config.action_controller.perform_caching = true config.cache_store = :null_store
而不是:null_store
,以前我有:memory
,我收到Type Error: Can't dump IO
。
即使使用当前的配置,在每次重新加载时它都会到达服务器并花费大量时间来显示结果。
需要做什么? 对于这个问题,哪种技术或gem负责缓存? 有许多航class搜索网站,如Google.com/flights或Cleartrip.com本身,结果呈现几乎是即时的。 你知道任何提示和技巧吗?
谢谢。
这应该做
if response.success? response.parsed_response else