Class: Bulkrax::ImporterJob
- Inherits:
-
ApplicationJob
- Object
- ActiveJob::Base
- ApplicationJob
- Bulkrax::ImporterJob
- Defined in:
- app/jobs/bulkrax/importer_job.rb
Instance Method Summary collapse
- #import(importer, only_updates_since_last_import) ⇒ Object
- #perform(importer_id, only_updates_since_last_import = false) ⇒ Object
- #schedule(importer) ⇒ Object
- #unzip_imported_file(parser) ⇒ Object
- #update_current_run_counters(importer) ⇒ Object
Instance Method Details
#import(importer, only_updates_since_last_import) ⇒ Object
19 20 21 22 23 24 |
# File 'app/jobs/bulkrax/importer_job.rb', line 19 def import(importer, only_updates_since_last_import) importer.only_updates = only_updates_since_last_import || false return unless importer.valid_import? importer.import_objects end |
#perform(importer_id, only_updates_since_last_import = false) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 |
# File 'app/jobs/bulkrax/importer_job.rb', line 7 def perform(importer_id, only_updates_since_last_import = false) importer = Importer.find(importer_id) importer.current_run unzip_imported_file(importer.parser) import(importer, only_updates_since_last_import) update_current_run_counters(importer) schedule(importer) if importer.schedulable? rescue ::CSV::MalformedCSVError => e importer.set_status_info(e) end |
#schedule(importer) ⇒ Object
39 40 41 |
# File 'app/jobs/bulkrax/importer_job.rb', line 39 def schedule(importer) ImporterJob.set(wait_until: importer.next_import_at).perform_later(importer.id, true) end |
#unzip_imported_file(parser) ⇒ Object
26 27 28 29 30 |
# File 'app/jobs/bulkrax/importer_job.rb', line 26 def unzip_imported_file(parser) return unless parser.file? && parser.zip? parser.unzip(parser.parser_fields['import_file_path']) end |
#update_current_run_counters(importer) ⇒ Object
32 33 34 35 36 37 |
# File 'app/jobs/bulkrax/importer_job.rb', line 32 def update_current_run_counters(importer) importer.current_run.total_work_entries = importer.limit || importer.parser.works_total importer.current_run.total_collection_entries = importer.parser.collections_total importer.current_run.total_file_set_entries = importer.parser.file_sets_total importer.current_run.save! end |