22 lines
636 B
Ruby
22 lines
636 B
Ruby
class Messages::AudioTranscriptionJob < ApplicationJob
|
|
queue_as :low
|
|
|
|
discard_on Faraday::BadRequestError do |job, error|
|
|
log_context = {
|
|
attachment_id: job.arguments.first,
|
|
job_id: job.job_id,
|
|
status_code: error.response&.dig(:status)
|
|
}
|
|
|
|
Rails.logger.warn("Discarding audio transcription job due to bad request: #{log_context}")
|
|
end
|
|
retry_on ActiveStorage::FileNotFoundError, wait: 2.seconds, attempts: 3
|
|
|
|
def perform(attachment_id)
|
|
attachment = Attachment.find_by(id: attachment_id)
|
|
return if attachment.blank?
|
|
|
|
Messages::AudioTranscriptionService.new(attachment).perform
|
|
end
|
|
end
|