summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2016-05-07 08:55:13 +0000
committerStan Hu <stanhu@gmail.com>2016-05-07 08:55:13 +0000
commitf3578baa83ca8d576f4fe1bef50ebae61615768e (patch)
tree3fec33fe1ddc263b1d264cc9b22ac4d095d863be
parent2e1162272e2f90a3677f3def491907729b249434 (diff)
parenta65de9c2c1b8ea2d7dca3132ff0d72775f04bb78 (diff)
downloadgitlab-ce-f3578baa83ca8d576f4fe1bef50ebae61615768e.tar.gz
Merge branch 'reduce-delete-delay' into 'master'
Reduce delay in destroying a project from 1-minute to immediately This 1-minute delay was causing confusion among customers. Was there a reason this needed to be 1 minute? See merge request !3997
-rw-r--r--CHANGELOG1
-rw-r--r--app/models/project.rb7
-rw-r--r--app/services/projects/destroy_service.rb4
3 files changed, 9 insertions, 3 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 78d6c1ec2b2..e9b3e7b097d 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -6,6 +6,7 @@ v 8.8.0 (unreleased)
- Log to application.log when an admin starts and stops impersonating a user
- Updated gitlab_git to 10.1.0
- GitAccess#protected_tag? no longer loads all tags just to check if a single one exists
+ - Reduce delay in destroying a project from 1-minute to immediately
- Make build status canceled if any of the jobs was canceled and none failed
- Upgrade Sidekiq to 4.1.2
- Sanitize repo paths in new project error message
diff --git a/app/models/project.rb b/app/models/project.rb
index 9403acf7759..dfd1e54ecf7 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -1039,4 +1039,11 @@ class Project < ActiveRecord::Base
def wiki
@wiki ||= ProjectWiki.new(self, self.owner)
end
+
+ def schedule_delete!(user_id, params)
+ # Queue this task for after the commit, so once we mark pending_delete it will run
+ run_after_commit { ProjectDestroyWorker.perform_async(id, user_id, params) }
+
+ update_attribute(:pending_delete, true)
+ end
end
diff --git a/app/services/projects/destroy_service.rb b/app/services/projects/destroy_service.rb
index df5054f08d7..19aab999e00 100644
--- a/app/services/projects/destroy_service.rb
+++ b/app/services/projects/destroy_service.rb
@@ -7,9 +7,7 @@ module Projects
DELETED_FLAG = '+deleted'
def pending_delete!
- project.update_attribute(:pending_delete, true)
-
- ProjectDestroyWorker.perform_in(1.minute, project.id, current_user.id, params)
+ project.schedule_delete!(current_user.id, params)
end
def execute