Rails resque: Datensatz nicht gefunden, wenn Variable vom Controller an Worker übergeben wird
-
27-10-2019 - |
Frage
Ich habe einen sehr einfachen Controller:
def create
@poem = Poem.new(params[:poem])
@poem.prose = @poem.content
@poem.save
Resque.enqueue(PoemWork, @poem.id)
....
und ein sehr einfacher Arbeiter:
class PoemWork
@queue = :poem_queue
def self.perform(poem_id)
@poem = Poem.find(poem_id)
txt = @poem.content
#do stuff here
@poem.save
end
end
Und ich bekomme immer wieder "Gedicht mit id= 53 konnte nicht gefunden werden" oder etw.so ...
Ich habe versucht, nur einen String, nur eine Ganzzahl usw. zu übergeben, aber es endet auch mit ActiveRecord :: RecordNotFound
Was kann falsch sein?
Lösung
Das Problem war also, dass der Worker startet, bevor das Objekt tatsächlich erstellt wird.
Musste das Juwel installieren, das fehlgeschlagene Jobs neu startet.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow