Я хочу создать задание, которое выполняет частичное асинхронное рендеринг после того, как я соберу выбранные ресурсы из серверной базы данных. Я делаю это, потому что получение данных, которые я извлекаю, занимает много времени, и я хотел бы иметь возможность отображать эти данные после их получения. Прямо сейчас мой код для задания выглядит так:
class CommentsJob < ApplicationJob
queue_as: default
def perform(commenter_company)
@comments = Comment.where(company: commenter_company)
@html = CommentsController.render partial: "comments", assigns {comments: @comments }
end
end
У меня уже есть частичная настройка _comments.html.erb. У меня также установлен асинхронный адаптер очереди, поэтому это задание действительно выполняется в фоновом режиме и завершается после загрузки страницы.
Я успешно могу получить html и установить его в переменную экземпляра @html в задании.
Мой вопрос: как я могу получить этот контент @html на странице, которая уже отображается? Можно ли это сделать из работы или мне нужно использовать ActionCable/websockets для этого? Заранее спасибо!