コード例 #1
0
ファイル: manager.py プロジェクト: kimch2/x8623
def backup_extras(type, ranking, backup_key, count=30):
    extra_key = backup_key + EXTRA_POSTFIX
    entityIDs = ranking.get_by_range(0, count)
    extras = {}
    for p in Player.batch_load(entityIDs, RANKING_EXTRA_KEYS[type]):
        if p is None:
            continue
        extras[p.entityID] = ranking_extra_encode(p, type)
    ranking.pool.execute_pipeline(
        ('del', extra_key),
        ['hmset', extra_key] + list(convert_dict_to_list(extras)),
    )
コード例 #2
0
 def update(self, *args, **kwargs):
     dict.update(self, *args, **kwargs)
     data = {}
     if args:
         e = args[0]
         if hasattr(e, 'items'):
             data = e
         else:
             data = convert_list_to_dict(e)
     data.update(kwargs)
     for k, v in data.items():
         data[k] = self.encoder(v)
     values = convert_dict_to_list(data)
     self.entity.push_command('HMSET', self.store_key, *values)
     self.touch_handler()
コード例 #3
0
def update_world(worldID, interval, **info):
    if worldID not in g_worlds:
        return False

    wkey = world_key(worldID)
    expire = time.time() + interval / float(1000)
    commands = [
        ('hmset', wkey) + tuple(convert_dict_to_list(info)),
        ('hset', 'ALL_WORLDS', worldID, expire),
    ]
    settings_pool.execute_pipeline(*commands)

    # update cache
    for k, v in info.items():
        setattr(g_worlds[worldID], k, v)

    return True
コード例 #4
0
ファイル: regions.py プロジェクト: fcua/x8623
    def update_world(self, worldID, interval, **info):
        if worldID not in self.worlds:
            return False

        wkey = world_key(self.id, worldID)
        rkey = region_key(self.id)
        expire = time.time() + interval / float(1000)
        commands = [
            ('hmset', wkey) + tuple(convert_dict_to_list(info)),
            # ('pexpire', wkey, interval),
            ('hset', rkey, worldID, expire),
        ]
        settings_pool.execute_pipeline(*commands)

        # update cache
        for k, v in info.items():
            setattr(self.worlds[worldID], k, v)

        return True
コード例 #5
0
ファイル: redishelpers.py プロジェクト: fcua/x8623
 def hmset(self, **kwargs):
     return self.pool.execute('hmset', self.key,
                              *convert_dict_to_list(kwargs))
コード例 #6
0
ファイル: regions.py プロジェクト: fcua/x8623
def reset_regions(regions):
    regions = {k: v["name"] for k, v in regions.items()}
    settings_pool.execute_pipeline(
        ('del', r_regions.key),
        ('hmset', r_regions.key) + tuple(convert_dict_to_list(regions)),
    )