Ich versuche, meinen Benutzern eine einfache Nachricht zu zeigen, während ihre benutzerdefinierte PDF erstellt und über Paperclip an das Modell angehängt wird. Zeigen Sie anschließend die Vorschau an, sobald sie abgeschlossen ist.Polling Sidekiq Job für die Fertigstellung über Verarbeitungsstatus in der Datenbank
Die einfachste Lösung, die ich finden kann, ist Mike Perhams Antwort in this question. "Verwenden Sie die Datenbank, um den Status jedes Fotos zu speichern und Sidekiq den Status aktualisieren zu lassen."
Kein Zweifel, Sie werden feststellen, dass ich noch Javascript, JQuery, Rails & lernen, wie man gute SO Fragen schreibt. Trotzdem, hier habe ich bis jetzt Frankenstein-ed.
Bitte lassen Sie mich wissen, wenn ich hier in die richtige Richtung arbeite?
# 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()
Vielen Dank für das Einspielen. Anerkannt. – rclark