Я пытаюсь показать своим пользователям простое сообщение, в то время как их пользовательский PDF создается и прикрепляется к модели через Paperclip. Затем выведите предварительный просмотр после завершения.Опрос Работа Sidekiq для завершения через состояние обработки в базе данных
Простейшее решение, которое я могу найти, это ответ Майка Перхама в this question. «Используйте базу данных для хранения состояния каждой фотографии и обновите состояние Sidekiq».
Без сомнения, вы заметите, что я все еще изучаю Javascript, JQuery, Rails &, как писать хорошие ответы на вопросы. Тем не менее, вот что я до сих пор имел в виду Франкенштейн.
Пожалуйста, дайте мне знать, если я работаю в правильном направлении здесь?
# generate_insert.rb
class GenerateInsert
include Sidekiq::Worker
def perform(customization_id)
customization = Customization.find(customization_id)
customization.update_attribute(:processing, true)
# code to perform, generate PDF via Prawn and attach via Paperclip
customization.update_attribute(:processing, false)
customization.save!
end
end
# customizations/show.html.erb
<div id='message'>First Message</div>
# messages.js
var i = 1;
var sampleMessages = [ "First Message", "Second Message", "Third Message" ];
setInterval(function() {
var newText = sampleMessages[i++ % sampleMessages.length];
$("#message").fadeOut(500, function() {
$(this).text(newText).fadeIn(500);
});
}, 1 * 3000);
});
# show.js.erb
$("#message").replaceWith("<%= j render 'customization' %>");
# poller.js
CustomizationPoller =
poll: ->
setTimeout @request, 5000
request: ->,
$.get($('???').data('url'))
jQuery ->
if $('#???').length > 0 // customization processing?
CustomizationPoller.poll()
Благодарим за понимание. – rclark