26 lines
691 B
Ruby
26 lines
691 B
Ruby
|
require 'peek/adapters/base'
|
||
|
require 'dalli'
|
||
|
|
||
|
module Peek
|
||
|
module Adapters
|
||
|
class Memcache < Base
|
||
|
def initialize(options = {})
|
||
|
@client = options.fetch(:client, ::Dalli::Client.new)
|
||
|
@expires_in = options.fetch(:expires_in, 60 * 30)
|
||
|
end
|
||
|
|
||
|
def get(request_id)
|
||
|
@client.get("peek:requests:#{request_id}")
|
||
|
rescue ::Dalli::DalliError => e
|
||
|
Rails.logger.error "#{e.class.name}: #{e.message}"
|
||
|
end
|
||
|
|
||
|
def save(request_id)
|
||
|
@client.add("peek:requests:#{request_id}", Peek.results.to_json, @expires_in)
|
||
|
rescue ::Dalli::DalliError => e
|
||
|
Rails.logger.error "#{e.class.name}: #{e.message}"
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|