提交 a26e25ea 编写于 作者: K Kamil Trzcinski

Optimise StuckCiJobsWorker

上级 03b891c5
......@@ -45,9 +45,13 @@ class StuckCiJobsWorker
end
def search(status, timeout)
builds = Ci::Build.where(status: status).where('ci_builds.updated_at < ?', timeout.ago)
builds.joins(:project).merge(Project.without_deleted).includes(:tags, :runner, project: :namespace).find_each(batch_size: 50).each do |build|
yield(build)
Ci::Build.where(status: status).in_batches(of: 1000) do |batch|
batch = batch.where('ci_builds.updated_at < ?', timeout.ago)
.joins(:project).merge(Project.without_deleted)
.includes(:tags, :runner, project: :namespace)
batch.each do |build|
yield(build)
end
end
end
......@@ -58,3 +62,4 @@ class StuckCiJobsWorker
end
end
end
---
title: Optimise StuckCiJobsWorker using cheap SQL query outside, and expensive inside
merge_request:
author:
type: performance
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册