use msgpack for efficiency

This commit is contained in:
Nick Elser
2015-04-12 15:28:53 -07:00
parent 89061170ea
commit 30639cae72
2 changed files with 8 additions and 5 deletions

View File

@@ -82,14 +82,15 @@ module Suo
private private
def serialize_locks(locks) def serialize_locks(locks)
locks.map { |time, token| [time.to_f, token].join(":") }.join(",") MessagePack.pack(locks.map { |time, token| [time.to_f, token] })
end end
def deserialize_locks(str) def deserialize_locks(val)
str.split(",").map do |s| MessagePack.unpack(val).map do |time, token|
time, token = s.split(":", 2) [Time.at(time), token]
[Time.at(time.to_f), token]
end end
rescue EOFError => _
[]
end end
def clear_expired_locks(locks, options) def clear_expired_locks(locks, options)

View File

@@ -6,6 +6,8 @@ require "dalli/cas/client"
require "redis" require "redis"
require "msgpack"
require "suo/client/errors" require "suo/client/errors"
require "suo/client/base" require "suo/client/base"
require "suo/client/memcached" require "suo/client/memcached"