Geben Sie einen AJAX-Prozess an, in dem der verzögerte Job abgeschlossen wurde

8

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.

    
lightyrs 18.02.2011, 14:11
quelle

3 Antworten

11

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.

    
Pan Thomakos 19.02.2011, 23:09
quelle
0

Mit diesem Juwel können Sie das Fortschritts-Tracking direkt auf dem Delayed::Job -Objekt selbst durchführen: Ссылка

Erledigte Jobs werden nicht mehr automatisch entfernt. Sie können also einen Job abfragen, bis er mit completed state zurückkommt.

    
Grocery 26.02.2016 21:11
quelle
-2

Wenn Sie ein JavaScript-Framework wie prototypejs verwenden, stellen Sie im optionalen Optionen-Hash normalerweise einen onComplete- und / oder onSuccess-Callback bereit. API-Referenz

    
Syed Aslam 18.02.2011 14:23
quelle