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
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
def deserialize_locks(str)
str.split(",").map do |s|
time, token = s.split(":", 2)
[Time.at(time.to_f), token]
def deserialize_locks(val)
MessagePack.unpack(val).map do |time, token|
[Time.at(time), token]
end
rescue EOFError => _
[]
end
def clear_expired_locks(locks, options)

View File

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