diff options
Diffstat (limited to 'db/migrate/20170503140201_reschedule_project_authorizations.rb')
-rw-r--r-- | db/migrate/20170503140201_reschedule_project_authorizations.rb | 44 |
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 |