class ContentGenerationJob < ApplicationJob require 'docsplit' @document_id = nil queue_as :default after_perform :generate_tags def perform(document_id) @document_id = document_id document = Document.find(document_id) Docsplit.extract_text(document.doc.path, output: 'tmp/raw_content') file_path = 'tmp/raw_content/' + File.basename(document.doc.path, 'pdf') + 'txt' text = IO.read(file_path) content = document.build_content(text: text) content.save! File.delete(file_path) if File.exist?(file_path) end private def generate_tags TagGenerationJob.perform_now @document_id end end