Es scheint nicht so. Aus der README: Ссылка
Standardmäßig werden fehlgeschlagene Jobs gelöscht (und es wird immer gelöscht) erfolgreiche Jobs). Wenn Sie fehlgeschlagene Jobs behalten möchten, legen Sie fest Verzögert :: Job.destroy_failed_jobs = false. Die fehlgeschlagenen Jobs werden sein markiert mit Nicht-Null failed_at.
Sie müssten wahrscheinlich in die destroy-Methode einhaken, so dass der Job in eine andere, separate Tabelle kopiert wird, die die Liste der abgeschlossenen Jobs für Sie speichert oder einfach protokolliert, welche Jobs in einer Datei ausgeführt wurden ist alles was du brauchst.
Was Sie nicht wollen, ist, die Jobs in der Tabelle delayed_jobs
zu belassen, und zwar aus mehreren Gründen. Erstens, weil delayed_jobs
diese Tabelle als TODO-Liste verwendet - Sie möchten, dass nur noch Dinge erledigt werden müssen. Zweitens, wenn Sie es gehackt haben, um alle Jobs in der gleichen Tabelle zu behalten, wächst die Tabelle delayed_jobs
nur, was die Verarbeitung von delayed_jobs
im Laufe der Zeit verlangsamen würde, wie die Abfrage, um Jobs zu finden, die noch nicht haben abgeschlossen wurden, müssten diejenigen filtern, die haben.
Erweiterung auf @ Jeffflunts Antwort.
Ich habe eine Migration hinzugefügt, um eine Tabelle zu erstellen, die die abgeschlossenen Jobs enthält
%Vor%Dann ein Modul
%Vor%Schließlich wurde der Hook dem Job hinzugefügt, den ich speichern möchte
%Vor%Da ich mehr als einen Job habe, habe ich die Erfolgsmethode hook in ein Modul eingefügt und in alle Jobs aufgenommen, die ich speichern möchte. (Hinweis: einige sind es nicht wert, gespeichert zu werden)
Sie könnten etwas wie acts_as_paranoid verwenden.
Grundsätzlich funktioniert das so:
Hier ist eine Einführung: Ссылка
Vorsicht: acts_as_paranoid ist sehr alt und es gibt vielleicht bessere Lösungen, also schaut euch Ссылка
anTags und Links ruby-on-rails delayed-job