2023-08-24 23:40:04 +09:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
class Importer::PublicStatusesIndexImporter < Importer::BaseImporter
|
|
|
|
def import!
|
2023-08-29 21:06:22 +09:00
|
|
|
scope.select(:id).find_in_batches(batch_size: @batch_size) do |batch|
|
|
|
|
in_work_unit(batch.pluck(:id)) do |status_ids|
|
2023-08-24 23:40:04 +09:00
|
|
|
bulk = ActiveRecord::Base.connection_pool.with_connection do
|
2023-09-01 02:04:27 +09:00
|
|
|
build_bulk_body(index.adapter.default_scope.where(id: status_ids))
|
2023-08-24 23:40:04 +09:00
|
|
|
end
|
|
|
|
|
2023-09-01 02:04:27 +09:00
|
|
|
indexed = bulk.size
|
|
|
|
deleted = 0
|
2023-08-24 23:40:04 +09:00
|
|
|
|
|
|
|
Chewy::Index::Import::BulkRequest.new(index).perform(bulk)
|
|
|
|
|
|
|
|
[indexed, deleted]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
wait!
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def index
|
|
|
|
PublicStatusesIndex
|
|
|
|
end
|
|
|
|
|
2023-08-29 21:06:22 +09:00
|
|
|
def scope
|
2023-09-05 22:37:23 +09:00
|
|
|
Status.indexable.reorder(nil)
|
2023-08-24 23:40:04 +09:00
|
|
|
end
|
|
|
|
end
|