У меня есть эта панель (отчет), которая в основном выполняет тяжелый запрос sql и отображает его результаты в сетке таблицы, довольно стандартные вещи.
Однако иногда запрос бывает слишком тяжелым из-за большого объема данных и сложности sql, и браузер просто зависает, пока пользователь не получит ошибку.
У меня нет n + 1 запросов, и я пытался добавить нумерацию страниц, но я все еще сталкиваюсь с этой проблемой.
Каков наилучший подход к этому? Использование фонового задания?
Есть ли способ выполнить этот запрос в фоновом режиме, чтобы предотвратить сбой запроса?
Я пытался внедрить рабочий sidekiq, но не уверен, что может получить результаты от работника после завершения задания.
@results = ActiveRecord::Base
.connection
.select_all(query)
.map do |record|
Hashie::Mash.new(record)
end
query
содержит запрос SQL в строке.
Любые идеи?