Method: XRuntime::DataSet#add

Defined in:
lib/x_runtime/data_set.rb

#add(member, score) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/x_runtime/data_set.rb', line 47

def add(member, score)
  @data.push([member, score])
  # 如果@data数据达到一定数量,则一起插入redis
  # 如果上一次写入Redis和这次请求相差时间大于@expire,则在本次请求时也将缓存数据写入Redis
  if (@data.size >= @count) or (Time.now.to_i - @expired_at >= @expire)
    @expired_at = Time.now.to_i
    @script.redis.multi do
      while (data = @data.pop) do
        @script.evalsha(:add, [@key], [data[0], data[1]])
      end
    end
  end
end