コード例 #1
0
ファイル: lock.py プロジェクト: zhifuliu/sanguo-server
    def lock(self, timeout=5):
        key = "{0}:{1}".format(self.key, server.id)

        t = 0
        while True:
            if t > timeout:
                raise LockTimeOut()

            # 程序期望获取到锁的等待时间是timeout
            # 那么这个锁的过期时间就简单设置成 timeout+1
            # 过期时间可以理解为程序期望获得锁以后,直到释放锁的运行时间
            # 不太可能会有这样的需求: 我期望等待10秒,但获取到锁后,只运行1秒
            # 或者 我期望等待1秒,但是获取到锁以后 要运行10秒
            # 一般都是 等待时间,于期望运行时间差不多
            result = redis_client.set(key, 1, ex=timeout + 1, nx=True)
            if result:
                # got the lock
                break

            time.sleep(self.INTERVAL)
            t += self.INTERVAL

        try:
            yield
        finally:
            redis_client.delete(key)
コード例 #2
0
ファイル: lock.py プロジェクト: yueyoum/sanguo-server
    def lock(self, timeout=5):
        key = "{0}:{1}".format(self.key, server.id)

        t = 0
        while True:
            if t > timeout:
                raise LockTimeOut()

            # 程序期望获取到锁的等待时间是timeout
            # 那么这个锁的过期时间就简单设置成 timeout+1
            # 过期时间可以理解为程序期望获得锁以后,直到释放锁的运行时间
            # 不太可能会有这样的需求: 我期望等待10秒,但获取到锁后,只运行1秒
            # 或者 我期望等待1秒,但是获取到锁以后 要运行10秒
            # 一般都是 等待时间,于期望运行时间差不多
            result = redis_client.set(key, 1, ex=timeout+1, nx=True)
            if result:
                # got the lock
                break

            time.sleep(self.INTERVAL)
            t += self.INTERVAL

        try:
            yield
        finally:
            redis_client.delete(key)
コード例 #3
0
ファイル: msgpipe.py プロジェクト: hx002/sanguo-server
def message_get(char_id):
    key = 'noti:{0}'.format(char_id)
    msgs = redis_client.lrange(key, 0, -1)
    redis_client.delete(key)
    return msgs
コード例 #4
0
ファイル: msgpipe.py プロジェクト: hx002/sanguo-server
def message_clean(char_id):
    key = 'noti:{0}'.format(char_id)
    redis_client.delete(key)
コード例 #5
0
ファイル: cache.py プロジェクト: hx002/sanguo-server
def delete(key):
    redis_client.delete(key)
コード例 #6
0
ファイル: cache.py プロジェクト: zhifuliu/sanguo-server
def delete(key):
    redis_client.delete(key)
コード例 #7
0
ファイル: msgpipe.py プロジェクト: hx002/sanguo-server
def message_get(char_id):
    key = 'noti:{0}'.format(char_id)
    msgs = redis_client.lrange(key, 0, -1)
    redis_client.delete(key)
    return msgs
コード例 #8
0
ファイル: msgpipe.py プロジェクト: hx002/sanguo-server
def message_clean(char_id):
    key = 'noti:{0}'.format(char_id)
    redis_client.delete(key)
コード例 #9
0
ファイル: msgpipe.py プロジェクト: yaosj/sanguo-server
def message_clean(char_id):
    key = keygen(char_id)
    redis_client.delete(key)
コード例 #10
0
ファイル: msgpipe.py プロジェクト: yaosj/sanguo-server
def message_get(char_id):
    key = keygen(char_id)
    msgs = redis_client.lrange(key, 0, -1)
    redis_client.delete(key)
    return msgs
コード例 #11
0
def message_clean(char_id):
    key = keygen(char_id)
    redis_client.delete(key)
コード例 #12
0
def message_get(char_id):
    key = keygen(char_id)
    msgs = redis_client.lrange(key, 0, -1)
    redis_client.delete(key)
    return msgs