def process(self, fp):
results = self.get_coverage(fp)
for result in results:
try:
with db.session.begin_nested():
db.session.add(result)
except IntegrityError:
lock_key = 'coverage:{build_id}:{file_hash}'.format(
build_id=result.build_id.hex,
file_hash=sha1(result.filename.encode(
'utf-8')).hexdigest(),
)
with redis.lock(lock_key):
result = self.merge_coverage(result)
db.session.add(result)
db.session.flush()
return results
评论列表
文章目录