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
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
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