Change the append build log method to execute the two calls via one pipelined connection

Should reduce the amount of packets used by the build manager

Reference: https://github.com/andymccurdy/redis-py#pipelines
This commit is contained in:
Joseph Schorr 2016-11-18 11:47:16 -05:00
parent 96173485f8
commit 1b8820f2e7

View file

@ -34,8 +34,11 @@ class RedisBuildLogs(object):
Appends the serialized form of log_obj to the end of the log entry list
and returns the new length of the list.
"""
self._redis.expire(self._logs_key(build_id), SEVEN_DAYS)
return self._redis.rpush(self._logs_key(build_id), json.dumps(log_obj))
pipeline = self._redis.pipeline(transaction=False)
pipeline.expire(self._logs_key(build_id), SEVEN_DAYS)
pipeline.rpush(self._logs_key(build_id), json.dumps(log_obj))
result = pipeline.execute()
return result[1]
def append_log_message(self, build_id, log_message, log_type=None, log_data=None):
"""