~cytrogen/masto-fe

ref: 702d162998f8265cbbe731b943a4bd22e6a1c7bf masto-fe/app/workers/import/row_worker.rb -rw-r--r-- 918 bytes
702d1629 — Claire Merge commit '5393be7a21331c8615ffb79c2271db92f6959458' into glitch-soc/merge-upstream 2 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# frozen_string_literal: true

class Import::RowWorker
  include Sidekiq::Worker

  sidekiq_options queue: 'pull', retry: 6, dead: false

  sidekiq_retries_exhausted do |msg, _exception|
    ActiveRecord::Base.connection_pool.with_connection do
      # Increment the total number of processed items, and bump the state of the import if needed
      bulk_import_id = BulkImportRow.where(id: msg['args'][0]).pick(:id)
      BulkImport.progress!(bulk_import_id) unless bulk_import_id.nil?
    end
  end

  def perform(row_id)
    row = BulkImportRow.eager_load(bulk_import: :account).find_by(id: row_id)
    return true if row.nil?

    imported = BulkImportRowService.new.call(row)

    mark_as_processed!(row, imported)
  end

  private

  def mark_as_processed!(row, imported)
    bulk_import_id = row.bulk_import_id
    row.destroy! if imported

    BulkImport.progress!(bulk_import_id, imported: imported)
  end
end