diff options
author | Stan Hu <stanhu@gmail.com> | 2016-05-07 08:55:13 +0000 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2016-05-07 08:55:13 +0000 |
commit | f3578baa83ca8d576f4fe1bef50ebae61615768e (patch) | |
tree | 3fec33fe1ddc263b1d264cc9b22ac4d095d863be | |
parent | 2e1162272e2f90a3677f3def491907729b249434 (diff) | |
parent | a65de9c2c1b8ea2d7dca3132ff0d72775f04bb78 (diff) | |
download | gitlab-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-- | CHANGELOG | 1 | ||||
-rw-r--r-- | app/models/project.rb | 7 | ||||
-rw-r--r-- | app/services/projects/destroy_service.rb | 4 |
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 |