示例#1
0
    def delete_model(self):
        ret = super(Province, self).delete_model()
        if ret:
            key = self.ALL_PROVINCE_IDS
            Redis.delete(key)

        return ret
示例#2
0
    def delete_model(self):
        ret = super(Channels, self).delete_model()
        if ret:
            key = self.ALL_CHANNELS_IDS
            Redis.delete(key)

        return ret
示例#3
0
    def create_model(self):
        _id = super(Province, self).create_model()
        if _id:
            key = self.ALL_PROVINCE_IDS
            Redis.delete(key)

        return _id
示例#4
0
    def create_model(self):
        _id = super(VersionConfig, self).create_model()
        if _id:
            key = self.ALL_VERSION_IDS
            Redis.delete(key)

        return _id
示例#5
0
    def clear_gifts_num(cls, user, is_money):
        pdict = {}
        for p in Product.get_all_gifts():
            pdict[p.product_id] = p.format()

        uproducts = cls.get_user_products(str(user._id))

        if is_money:
            for up in uproducts:
                if up.product_id not in pdict and not up.is_money:
                    continue
                cls.update(num=0).where(
                    UserProduct.user_id == str(user._id),
                    UserProduct.is_money == is_money,
                    UserProduct.product_id == int(up.product_id)).execute()

            key = USER_PRODUCT_KEY % (str(user._id))
            Redis.delete(key)
            return

        else:
            for up in uproducts:
                if up.product_id not in pdict and up.is_money:
                    continue
                cls.update(num=0).where(
                    UserProduct.user_id == str(user._id),
                    UserProduct.is_money == is_money,
                    UserProduct.product_id == int(up.product_id)).execute()

            key = USER_PRODUCT_KEY % (str(user._id))
            Redis.delete(key)
            return
示例#6
0
    def update_model(self, data={}):
        ret = super(Province, self).update_model(data)
        if ret:
            key = self.ALL_PROVINCE_IDS
            Redis.delete(key)

        return ret
示例#7
0
    def user_sub_obj_ids(cls, uid, page, pagesize, maxs):
        skey = UserSubShow.SUB_SHOW_IDS % {'uid': uid}
        gkey = UserSubGame.SUB_GAME_IDS % {'uid': uid}
        key = cls.USER_SUB_IDS % {'uid': uid}

        if not Redis.exists(skey):
            UserSubShow._load_sub_show_ids(uid)
        if not Redis.exists(gkey):
            UserSubGame._load_sub_game_ids(uid)

        # 始终合并以保证实时性
        Redis.delete(key)
        all_keys = list()
        for k in [skey, gkey]:
            try:
                count = Redis.zcard(k)
            except exceptions.ResponseError:
                count = 0
            count and all_keys.append(k)
        all_keys and Redis.zunionstore(key, all_keys)

        try:
            if maxs:
                ids = Redis.zrevrangebyscore(key, '(%.6f' % (maxs), '-inf', start=0, num=pagesize, withscores=True)
            else:
                start = (page - 1) * pagesize
                stop = start + pagesize - 1
                ids = Redis.zrevrange(key, start, stop, withscores=True)
        except exceptions.ResponseError:
            ids = []
        return list(ids)
示例#8
0
    def update_model(self, data={}):
        ret = super(Channels, self).update_model(data)
        if ret:
            key = self.ALL_CHANNELS_IDS
            Redis.delete(key)

        return ret
示例#9
0
    def create_model(self):
        _id = super(Channels, self).create_model()
        if _id:
            key = self.ALL_CHANNELS_IDS
            Redis.delete(key)

        return _id
示例#10
0
def do_task(worker, job):
    from wanx.base.log import print_log
    from wanx.base.xredis import Redis
    from wanx.models.video import UserFaverVideo
    from wanx.models.user import User
    data = job.data
    # 记录日志
    print_log('modify_video', data)

    data = json.loads(data)
    vid = data['vid']
    # action = data['action']
    # delta_count = 0
    # if action == 'offline':
    #     delta_count = -1
    # elif action == 'online':
    #     delta_count = 1
    # 更新收藏了此视频的用户计数
    uids = UserFaverVideo.favor_video_uids(vid)
    for uid in uids:
        user = User.get_one(uid, check_online=False)
        if user:
            key = UserFaverVideo.FAVER_VIDEO_IDS % ({'uid': uid})
            Redis.delete(key)
            count = UserFaverVideo.faver_video_count(uid)
            user.update_model({'$set': {'favor_count': count}})
    return ''
示例#11
0
    def delete_model(self):
        ret = super(VersionConfig, self).delete_model()
        if ret:
            key = self.ALL_VERSION_IDS
            Redis.delete(key)

        return ret
示例#12
0
    def update_model(self, data={}):
        ret = super(VersionConfig, self).update_model(data)
        if ret:
            key = self.ALL_VERSION_IDS
            Redis.delete(key)

        return ret
示例#13
0
    def refresh_daily_tasks(cls, user_id):
        _tasks = []
        for task in Task.get_daily_tasks():
            tmp = dict(user_id=user_id,
                       task_id=task.task_id,
                       task_type=task.task_type,
                       action=task.action)
            # 每日签到任务自动完成
            if task.action == DAILY_SIGNIN:
                tmp['task_status'] = FINISHED
                tmp['finish_num'] = 1
            _tasks.append(tmp)

        with MYDB.atomic():
            # 删除旧的每日任务
            cls.delete().where(UserTask.user_id == user_id,
                               UserTask.task_type == 2).execute()
            # 增加新的每日任务
            if _tasks:
                UserTask.insert_many(_tasks).execute()
            # 修改任务刷新时间
            UserCredit.update(task_at=datetime.datetime.now()).where(
                UserCredit.user_id == user_id).execute()

        key = USER_TASK_KEY % (user_id)
        Redis.delete(key)
示例#14
0
 def delete_model(self):
     ret = super(Live_Activity, self).delete_model()
     if ret:
         key = self.LIVE_HOT_USER % ({'aid': str(self.activity_id)})
         Redis.delete(key)
         key = self.LIVE_NEW_USER % ({'aid': str(self.activity_id)})
         Redis.delete(key)
     return ret
示例#15
0
 def update_model(self, data={}):
     obj = super(Live_Activity, self).update_model(data)
     if obj:
         key = self.LIVE_HOT_USER % ({'aid': str(self.activity_id)})
         Redis.delete(key)
         key = self.LIVE_NEW_USER % ({'aid': str(self.activity_id)})
         Redis.delete(key)
     return obj
示例#16
0
 def create_model(self):
     _id = super(Live_Activity, self).create_model()
     if _id:
         key = self.LIVE_HOT_USER % ({'aid': str(self.activity_id)})
         Redis.delete(key)
         key = self.LIVE_NEW_USER % ({'aid': str(self.activity_id)})
         Redis.delete(key)
     return _id
示例#17
0
 def create_model(self):
     aid = 'all'
     phone = self.phone
     device = self.device
     for k, xid in {'phone': phone, 'device': device}.iteritems():
         key = self.USER_ACTIVITY % ({'aid': aid, 'xid': xid})
         Redis.delete(key)
     return super(UserShareActivityLog, self).create_model()
示例#18
0
 def update_model(self, data={}):
     ret = super(Config, self).update_model(data)
     if ret:
         cache_key = self.CONFIG_PREFIX % (self.key)
         Redis.delete(cache_key)
         cache_key = self.CONFIG_PREFIX % (ret.key)
         Redis.delete(cache_key)
     return ret
示例#19
0
 def delete_model(self):
     ret = self.collection.delete_one({"_id": ObjectId(self._id)})
     key = self.OBJECT_KEY % ({
         'name': self.__class__.__name__.lower(),
         'oid': str(self._id)
     })
     Redis.delete(key)
     return ret.deleted_count
示例#20
0
 def delete_model(self):
     ret = super(ActivityComment, self).delete_model()
     if ret:
         key = self.ACTIVITY_COMMENT_IDS % ({'aid': str(self.activity)})
         try:
             Redis.zrem(key, str(self._id))
         except exceptions.ResponseError:
             Redis.delete(key)
     return ret
示例#21
0
 def update_model(self, data={}):
     ret = super(HomeCategoryConfig, self).update_model(data)
     if ret:
         key = self.CATEGORY_OBJ_IDS % ({'cate_id': str(self.category)})
         Redis.delete(key)
         if self.category != ret.category:
             key = self.CATEGORY_OBJ_IDS % ({'cate_id': str(ret.category)})
             Redis.delete(key)
     return ret
示例#22
0
 def test_cached_set(self):
     self._cached_set()
     self.assertEqual(Redis.get(self.SET_KEY), 'empty')
     with self.assertRaises(exceptions.ResponseError):
         Redis.sadd(self.SET_KEY, ('dog', 'pig'))
         Redis.delete(self.SET_KEY)
     self._cached_set(('dog', 'pig'))
     self.assertTrue(Redis.sismember(self.SET_KEY, 'dog'))
     self.assertTrue(Redis.sismember(self.SET_KEY, 'pig'))
示例#23
0
 def test_cached_zset(self):
     self._cached_zset()
     self.assertEqual(Redis.get(self.ZSET_KEY), 'empty')
     with self.assertRaises(exceptions.ResponseError):
         Redis.zadd(self.ZSET_KEY, 1, 'dog', 2, 'pig')
         Redis.delete(self.ZSET_KEY)
     self._cached_zset((1, 'dog', 2, 'pig'))
     self.assertListEqual(Redis.zrevrange(self.ZSET_KEY, 0, -1),
                          ['pig', 'dog'])
示例#24
0
 def test_cached_list(self):
     self._cached_list()
     self.assertEqual(Redis.get(self.LIST_KEY), 'empty')
     with self.assertRaises(exceptions.ResponseError):
         Redis.rpush(self.SET_KEY, ['dog', 'pig'])
         Redis.delete(self.SET_KEY)
     self._cached_list(['dog', 'pig'])
     self.assertListEqual(Redis.lrange(self.LIST_KEY, 0, -1),
                          ['dog', 'pig'])
示例#25
0
    def delete_model(self):
        ret = super(DaTangVideo, self).delete_model()
        if ret:
            key = self.USER_GAME_VIDEO_IDS % ({'uid': str(self.author), 'gid': str(self.game)})
            try:
                Redis.zrem(key, str(self._id))
            except exceptions.ResponseError:
                Redis.delete(key)

        return ret
示例#26
0
    def delete_model(self):
        ret = super(UserPopularGame, self).delete_model()
        if ret:
            key = self.POP_GAME_IDS % ({'uid': str(self.source)})
            try:
                Redis.zrem(key, str(self.target))
            except exceptions.ResponseError:
                Redis.delete(key)

        return ret
示例#27
0
 def update_model(self, data={}):
     data = data or self
     self.collection.update_one({'_id': self._id}, data)
     key = self.OBJECT_KEY % ({
         'name': self.__class__.__name__.lower(),
         'oid': str(self._id)
     })
     Redis.delete(key)
     obj = self._load_object(str(self._id))
     return obj
示例#28
0
    def create_model(self):
        _id = super(UserPopularGame, self).create_model()
        if _id:
            key = self.POP_GAME_IDS % ({'uid': str(self.source)})
            try:
                if Redis.exists(key):
                    Redis.zadd(key, self.create_at, str(self.target))
            except exceptions.ResponseError:
                Redis.delete(key)

        return _id
示例#29
0
 def create_model(self):
     _id = super(ActivityComment, self).create_model()
     if _id:
         key = self.ACTIVITY_COMMENT_IDS % ({'aid': str(self.activity)})
         # 列表为空时key对应的value是一个string
         try:
             if Redis.exists(key):
                 Redis.zadd(key, self.create_at, str(_id))
         except exceptions.ResponseError:
             Redis.delete(key)
     return _id
示例#30
0
    def delete_removed_tasks(cls, user_id):
        # 删除任务已被移除的用户任务
        need_to_delete = False
        for utask in cls.get_user_tasks(user_id):
            if Task.get_task(utask.task_id) is None:
                utask.delete_instance()
                need_to_delete = True

        if need_to_delete:
            key = USER_TASK_KEY % (user_id)
            Redis.delete(key)