2016-09-26 3 views
1

Ich möchte jedoch einige E-Mails durch delayed_jobMake verzögert Joblauf zu bestimmten Datum Zeit

schicken, ich möchte, dass sie senden vor und nach einem Ereignis.

Meine Sorge ist, wenn dies tatsächlich funktioniert:

def one_week_before_run 
    AtendeeMailer.delay(run_at: '8th October 2016'.to_datetime).mudrun_about_to_start(self) 
end 

def thank_you_note 
    AtendeeMailer.delay(run_at: '18th October 2016'.to_datetime.end_of_day).thank_you(self) 
end 

oder sollte ich einen anderen Ansatz wählen?

Antwort

1

Verzögerter Job wählt einen Job aus, der nur ausgeführt werden soll, wenn run_at < = aktuelle Zeit ist. Siehe DJ Abfrage Job

SELECT `delayed_jobs`.* FROM `delayed_jobs` WHERE ((run_at <= '2016-09-27 00:49:59' AND (locked_at IS NULL OR locked_at < '2016-09-27 00:24:59') OR locked_by = 'host:Madhubalans-Air pid:74314') AND failed_at IS NULL) ORDER BY priority ASC, run_at ASC LIMIT 1 

Ihr Code run_at zu 2016.10.18 setzt 00.00.00 und 23.59.59 2016.10.18 holen. So funktioniert Ihr Code nach Ihrer Erwartung :)

+0

Vielen Dank! Prost! –

Verwandte Themen