Class: ArchiveStorage::Enqueuer

Inherits:
Object
  • Object
show all
Defined in:
lib/archive_storage/enqueuer.rb

Instance Method Summary collapse

Constructor Details

#initialize(backend: ArchiveStorage.configuration.job_backend) ⇒ Enqueuer

Returns a new instance of Enqueuer.



5
6
7
# File 'lib/archive_storage/enqueuer.rb', line 5

def initialize(backend: ArchiveStorage.configuration.job_backend)
  @backend = backend.to_sym
end

Instance Method Details

#enqueue_migration(file_record_id) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/archive_storage/enqueuer.rb', line 9

def enqueue_migration(file_record_id)
  case backend
  when :inline
    require_relative "migrator"
    ArchiveStorage::Migrator.new.migrate_record!(ArchiveStorage.configuration.registry_class.find(file_record_id))
  when :active_job, :good_job
    require_relative "jobs/migration_job"
    Jobs::MigrationJob.perform_later(file_record_id)
  when :sidekiq
    require_relative "jobs/sidekiq_migration_worker"
    Jobs::SidekiqMigrationWorker.perform_async(file_record_id)
  else
    raise ConfigurationError, "unknown job backend #{backend.inspect}"
  end
end