Senden von automatischen Mails in einer Rails App - Ruby-on-Rails, E-Mail, Cron

In meiner Rails-Anwendung können Benutzer einige Ereignisse abonnieren. Ich möchte 24 Stunden vor Beginn der Veranstaltung eine E-Mail an den Benutzer senden.

Ich bin mir nicht sicher, wie ich das umsetzen soll. Eine Rake-Aufgabe? Gibt es ein paar Edelsteine ​​oder Best Practices?

Vielen Dank!

BEARBEITEN:

Ich schätze, dass mein Cron jede Minute laufen mussErhalten Sie jedes Ereignis, das in 24 Stunden beginnt. Aber wenn der Cron aufhört oder es länger als eine Minute dauert, kann ich einige E-Mails nicht überspringen. Auf die andere Weise, wie kann ich sicher sein, dass ich nicht zweimal dieselbe E-Mail sende?

Antworten:

5 für die Antwort № 1

Auschecken:

http://railscasts.com/episodes/206-action-mailer-in-rails-3

zum Senden von Mail und

http://railscasts.com/episodes/164-cron-in-ruby-revised

für die Verwendung wann immer Sie einen Cron einrichten, um Ihren Mailer anzurufen

EDIT: Habe deinen Kommentar gesehen. In diesem Fall würde ich etwas wie resque-scheduler oder das Äquivalent mit sidekiq betrachten:

https://github.com/bvandenbos/resque-scheduler

dann kannst du so etwas machen:

Resque.enqueue_at(24.hours.from_now, SendFollowUpEmail, :user_id => current_user.id)

sidekiq Beispiel:

FollowUpEmailer.perform_in(24.hours.from_now, current_user.id)

0 für die Antwort № 2

https://github.com/mperham/sidekiq/pull/257

Dies wird Ihnen helfen, automatische Mailing-System in der geplanten Zeit zu lösen!


Speisekarte