4

私の Rails アプリケーションでは、ユーザーはいくつかのイベントをサブスクライブできます。イベント開始の 24 時間前にユーザーにメールを送信したいと思います。

それを実装する方法がわかりません。レーキ タスク ? 従うべきいくつかの宝石またはいくつかのベストプラクティスはありますか?

ありがとう!

編集:

24 時間以内に開始される各イベントを取得するには、cron を毎分実行する必要があると思います。しかし、cron が停止した場合、または 1 分以上かかる場合、一部のメールをスキップできません。逆に、同じメールを 2 回送信していないことを確認するにはどうすればよいですか?

4

2 に答える 2

6

チェックアウト:

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

メールの送信と

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

メーラーを呼び出すためにcronを設定するためにいつでも使用するため

編集:あなたのコメントを見ただけです。その場合、resque-schedulerまたはsidekiqと同等のものを使用することを検討します。

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

次に、次のようなことができます。

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

sidekiqの例:

FollowUpEmailer.perform_in(24.hours.from_now, current_user.id)
于 2013-02-19T21:22:30.557 に答える