タグ

ブックマーク / motsat.hatenadiary.org (1)

  • RubyでRedis使ってて便利だったgem - motsatのブログ

    ・redis-objectsの「Redis::Lock」 redis-objectsがまず便利なんだけど、その中で「Redis::Lock」。 処理が平行して実行されないようにしたい時など、処理の一部をロックしたい時に役立つ。 これは、redis公式の http://redis.io/commands/setnx これに則ってる。 簡単にいうと、SETNX(セットされていたかどうかで0or1が帰る処理)でキーを取得して、取得されていたら解放されるまでポーリング(もしくはタイムアウトを設定してタイムアウトさせる) require 'redis-objects' @lock = Redis::Lock.new('lock-key', timeout:0.1) begin @lock.lock do # lockの最初に"setnx" "lock-key"を実行し、lockを獲得 sleep(1

    RubyでRedis使ってて便利だったgem - motsatのブログ
  • 1