Einfache Frage. Ich habe ein ActiveRecord-Modell, das ich NACH der Speicherung des Datensatzes nachbearbeiten möchte. Im Modell habe ich also eine queue_for_processing-Methode, die einen Job in meine Resque-Warteschlange einfügt. Um dies auszuführen, nachdem mein Datensatz erfolgreich gespeichert wurde, habe ich Folgendes in mein Modell geschrieben:Schienen: Ausnahme in after_create stopping speichern
Ziemlich einfach. Ich hatte gedacht, dass alles wie erwartet funktionierte, außer dass letzte Nacht mein Redis-Server herunterging und die Dinge schief gingen. Meine Erwartungen waren, dass der Datensatz immer noch gespeichert werden würde und ich den Auftrag später manuell bearbeiten könnte. Die Methode queue_for_processing gibt jedoch eine Ausnahme (erwartetes Verhalten) aus und verhindert, dass der Datensatz gespeichert wird.
Missverstehe ich, wie after_create funktioniert? Oder ist mein Verständnis korrekt und etwas Funky passiert?
Danke.
Super, danke für die schnelle Antwort. Das war auch hilfreich: http://rails-bestpractices.com/posts/695-use-after_commit –
Auch, danke für die Einführung in After_commit. Ich sehe, dass es in Rails3 eingeführt wurde, aber ich muss das Memo verpasst haben. Ich lerne gern neue Dinge :-) –
Tolle Erklärung! +1 für Prägnanz. –