Class: Ragdoll::ExtractKeywordsJob

Inherits:
ActiveJob::Base
  • Object
show all
Defined in:
app/jobs/ragdoll/extract_keywords_job.rb

Instance Method Summary collapse

Instance Method Details

#perform(document_id) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/jobs/ragdoll/extract_keywords_job.rb', line 9

def perform(document_id)
  document = Ragdoll::Document.find(document_id)
  return unless document.content.present?
  return if document.keywords.present?

  text_service = Ragdoll::TextGenerationService.new
  keywords_array = text_service.extract_keywords(document.content)

  if keywords_array.present?
    keywords_string = keywords_array.join(", ")
    document.update!(keywords: keywords_string)
  end
rescue ActiveRecord::RecordNotFound
  # Document was deleted, nothing to do
rescue StandardError => e
  Rails.logger.error "Failed to generate keywords for document #{document_id}: #{e.message}" if defined?(Rails)
  raise e
end