summaryrefslogtreecommitdiff
path: root/db/migrate/20170503140201_reschedule_project_authorizations.rb
diff options
context:
space:
mode:
Diffstat (limited to 'db/migrate/20170503140201_reschedule_project_authorizations.rb')
-rw-r--r--db/migrate/20170503140201_reschedule_project_authorizations.rb44
1 files changed, 0 insertions, 44 deletions
diff --git a/db/migrate/20170503140201_reschedule_project_authorizations.rb b/db/migrate/20170503140201_reschedule_project_authorizations.rb
deleted file mode 100644
index aa940bed2d3..00000000000
--- a/db/migrate/20170503140201_reschedule_project_authorizations.rb
+++ /dev/null
@@ -1,44 +0,0 @@
-# See http://doc.gitlab.com/ce/development/migration_style_guide.html
-# for more information on how to write migrations for GitLab.
-
-class RescheduleProjectAuthorizations < ActiveRecord::Migration[4.2]
- include Gitlab::Database::MigrationHelpers
-
- DOWNTIME = false
-
- disable_ddl_transaction!
-
- class User < ActiveRecord::Base
- self.table_name = 'users'
- end
-
- def up
- offset = 0
- batch = 5000
- start = Time.now
-
- loop do
- relation = User.where('id > ?', offset)
- user_ids = relation.limit(batch).reorder(id: :asc).pluck(:id)
-
- break if user_ids.empty?
-
- offset = user_ids.last
-
- # This will schedule each batch 5 minutes after the previous batch was
- # scheduled. This smears out the load over time, instead of immediately
- # scheduling a million jobs.
- Sidekiq::Client.push_bulk(
- 'queue' => 'authorized_projects',
- 'args' => user_ids.zip,
- 'class' => 'AuthorizedProjectsWorker',
- 'at' => start.to_i
- )
-
- start += 5.minutes
- end
- end
-
- def down
- end
-end