Ich habe eine Rails 3-App, die mit delayed_job einige Daten (mit einer Klassenmethode) abruft, wenn der Benutzer auf die Seite klickt. Wie kann ich dem Ajax-Prozess anzeigen, dass die Klassenmethode ausgeführt wurde (damit ich die Abfrage stoppen kann)?
BEARBEITEN:
Um zu verdeutlichen, möchte ich wissen, wann der delayed_job ausgeführt wurde, nicht wenn der Ajax-Prozess erfolgreich war. Dann möchte ich den Status delayed_job completed an den laufenden AJAX-Prozess übergeben.
Normalerweise besteht der beste Weg darin, in Ihrer Datenbank einen Hinweis auf den Fortschritt des Jobs zu speichern. Zum Beispiel:
%Vor%So, wenn Sie den Job in die Warteschlange stellen:
%Vor%Sie können in Ihrem Controller den Status des Jobs abfragen:
%Vor%Wenn Sie einen Ajax-Prozess abfragen, können Sie einfach check_status aufrufen, um zu sehen, wie der Job fortschreitet, ob er erfolgreich war oder ob er fehlgeschlagen ist.
Wenn Sie ein JavaScript-Framework wie prototypejs verwenden, stellen Sie im optionalen Optionen-Hash normalerweise einen onComplete- und / oder onSuccess-Callback bereit. API-Referenz
Tags und Links ruby-on-rails ajax comet delayed-job polling