Ich versuche, einen Job 3 Minuten nach einer Aktion des Controllers auszuführen.Job in X Minuten starten
Ich habe versucht, dies mit DelayedJob:
# in my controller
def index
@books = Book.all
Delayed::Job.enqueue(ReminderJob.new(params[:user_id]))
end
Und in der ReminderJob.rb
Datei:
class ReminderJob < Struct.new(:user_id)
def perform
p "run reminder job"
# do something
end
handle_asynchronously :perform, :run_at => Proc.new { 3.minutes.from_now }
end
Wenn jedoch die Index-Seite zugreifen, die ich in den Protokollen etwas nicht sehen, und 3 Minuten später passiert nichts.
Was habe ich falsch gemacht? Gibt es eine andere empfohlene Möglichkeit, eine Aufgabe "in X Minuten von jetzt an" auszuführen, ohne sleep
zu verwenden?
Haben Sie lesen [Common-Probleme # Nichts-passiert] (https://github.com/ collectividea/delayed_job/wiki/Häufig auftretende Probleme # nothing-happens)? –
Warum verwenden Sie nicht den integrierten 'ActiveJob' von Rails? – siegy22
@RaVeN Ich konnte mit activeJob keine Möglichkeit finden, "diesen Job in X Minuten zu starten". Ist das möglich ? –