summaryrefslogtreecommitdiff
path: root/app/models/ci
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2017-06-01 16:36:04 -0500
committerDouwe Maan <douwe@selenight.nl>2017-06-02 11:43:32 -0500
commite4eac1fff1ba6d890f9f028dbfe47918b7876688 (patch)
treef4f08e065ca769e34c0e2139765b268c192260d2 /app/models/ci
parenta9dbda8605f2c3111c4e4775edf7f931e4260a41 (diff)
downloadgitlab-ce-e4eac1fff1ba6d890f9f028dbfe47918b7876688.tar.gz
Don’t schedule workers from inside transactions
Diffstat (limited to 'app/models/ci')
-rw-r--r--app/models/ci/build.rb10
1 files changed, 8 insertions, 2 deletions
diff --git a/app/models/ci/build.rb b/app/models/ci/build.rb
index 58dfdd87652..2c2140c53b0 100644
--- a/app/models/ci/build.rb
+++ b/app/models/ci/build.rb
@@ -47,8 +47,8 @@ module Ci
before_destroy { unscoped_project }
after_create :execute_hooks
- after_save :update_project_statistics, if: :artifacts_size_changed?
- after_destroy :update_project_statistics
+ after_commit :update_project_statistics_after_save, on: [:create, :update]
+ after_commit :update_project_statistics, on: :destroy
class << self
# This is needed for url_for to work,
@@ -491,5 +491,11 @@ module Ci
ProjectCacheWorker.perform_async(project_id, [], [:build_artifacts_size])
end
+
+ def update_project_statistics_after_save
+ if previous_changes.include?('artifacts_size')
+ update_project_statistics
+ end
+ end
end
end