mirror of
https://github.com/dkam/suo.git
synced 2025-01-29 07:42:43 +00:00
use msgpack for efficiency
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user