Ejemplo n.º 1
0
    def query(self, account_id, limit=21):
        """ query for last 20 records of activity lists"""

        c = Cache(db=settings.CACHE_DATABASES['activity_resources'])
        list_key = 'activity_stream::%s' % str(account_id)
        activity_keys = c.lrange(str(list_key), 0, limit)
        r = redis.Redis(host=settings.REDIS_READER_HOST,
                        port=settings.REDIS_PORT,
                        db=settings.CACHE_DATABASES['activity_resources'])
        pipeline = r.pipeline()

        for key in activity_keys:
            pipeline.hgetall(key)
        activities = []
        users = {}  # avoid duplicated sql queries
        for h in pipeline.execute():
            user_id = h.get('user_id', None)
            if user_id:
                if not users.get(user_id, None):
                    user = User.objects.get(pk=user_id)
                    users[user_id] = user
                else:
                    user = users[user_id]
                h['user_nick'] = user.nick
                h['user_email'] = user.email
                h['user_name'] = user.name

                activities.append(h)

        # if settings.DEBUG: logger.info('Returned activities %s' % str(activities))
        return activities
Ejemplo n.º 2
0
    def query(self, account_id, limit=21):
        """ query for last 20 records of activity lists"""
        if settings.DEBUG:
            logger.info("Query ActivityStreamDAO %d" % account_id)

        c = Cache(db=settings.CACHE_DATABASES["activity_resources"])
        list_key = "activity_stream::%s" % str(account_id)
        activity_keys = c.lrange(str(list_key), 0, limit)
        r = redis.Redis(
            host=settings.REDIS_READER_HOST, port=settings.REDIS_PORT, db=settings.CACHE_DATABASES["activity_resources"]
        )
        pipeline = r.pipeline()

        for key in activity_keys:
            pipeline.hgetall(key)
        activities = []
        users = {}  # avoid duplicated sql queries
        for h in pipeline.execute():
            user_id = h.get("user_id", None)
            if user_id:
                if not users.get(user_id, None):
                    user = User.objects.get(pk=user_id)
                    users[user_id] = user
                else:
                    user = users[user_id]
                h["user_nick"] = user.nick
                h["user_email"] = user.email
                h["user_name"] = user.name

                activities.append(h)

        # if settings.DEBUG: logger.info('Returned activities %s' % str(activities))
        return activities
Ejemplo n.º 3
0
    def query(self, account_id, limit=-21):
        """ query for last 20 records of activity lists"""
        c = Cache(db=settings.CACHE_DATABASES['activity_resources'])
        list_key = 'activity_stream::%s' % str(account_id)
        activity_keys = c.lrange(str(list_key),limit,-1)
        r = redis.Redis(host='localhost', port=settings.REDIS_PORT,
            db=settings.CACHE_DATABASES['activity_resources'])
        pipeline=r.pipeline()

        for key in activity_keys:
            pipeline.hgetall(key)
        activities = []
        users = {} # avoid duplicated sql queries
        for h in pipeline.execute():
            user_id = h['user_id']
            if not users.get(user_id, None):
                user = User.objects.get(pk=user_id)
                users[user_id] = user
            else:
                user = users[user_id]
            h['user_nick'] = user.nick
            h['user_email'] = user.email
                
            activities.append(h)

        return activities