2020-05-12 00:10:11 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module DesignManagement
|
|
|
|
class NewVersionWorker # rubocop:disable Scalability/IdempotentWorker
|
|
|
|
include ApplicationWorker
|
|
|
|
|
2021-07-21 12:09:35 +00:00
|
|
|
data_consistency :always
|
|
|
|
|
2021-04-30 18:10:09 +00:00
|
|
|
sidekiq_options retry: 3
|
|
|
|
|
2020-05-12 00:10:11 +00:00
|
|
|
feature_category :design_management
|
|
|
|
# Declare this worker as memory bound due to
|
|
|
|
# `GenerateImageVersionsService` resizing designs
|
|
|
|
worker_resource_boundary :memory
|
|
|
|
|
2020-09-29 00:09:59 +00:00
|
|
|
def perform(version_id, skip_system_notes = false)
|
2020-05-12 00:10:11 +00:00
|
|
|
version = DesignManagement::Version.find(version_id)
|
|
|
|
|
2020-09-29 00:09:59 +00:00
|
|
|
add_system_note(version) unless skip_system_notes
|
2020-05-12 00:10:11 +00:00
|
|
|
generate_image_versions(version)
|
|
|
|
rescue ActiveRecord::RecordNotFound => e
|
|
|
|
Sidekiq.logger.warn(e)
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def add_system_note(version)
|
|
|
|
SystemNoteService.design_version_added(version)
|
|
|
|
end
|
|
|
|
|
|
|
|
def generate_image_versions(version)
|
|
|
|
DesignManagement::GenerateImageVersionsService.new(version).execute
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|