質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

6242閲覧

railsで指定した日時にメールを送信

ryuji1213

総合スコア17

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

2クリップ

投稿2017/03/08 08:26

railsのアクションメーラーを利用して、指定した日時にメールを送信したいです。
・予約完了時にメール
└ 予約時間の10分前にメール ← ここで詰まっています。
特定の時刻にユーザーへメールを送信できるようにするには、
どうすればよろしいでしょうか?

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

その場合、定時処理を用意する必要があります。
DBに保存されている予約時刻に処理が起動して…のような挙動は難しいです。

cronジョブというのを用意する必要があるのですが、railsならば
wheneverというgemを使えば、比較的簡単に実装できますので下記ご参考ください。
https://www.school.ctc-g.co.jp/columns/masuidrive/masuidrive22.html
http://morizyun.github.io/blog/whenever-gem-rails-ruby-capistrano/

質問の内容の場合、「現在時刻と予約時刻を比較し、10分前ならばメール送信処理を実行する」ようなrakeタスクを用意しておき、それを1分おきや1時間おきなどで呼び出すほうが良いでしょう!

投稿2017/03/08 11:13

Seiga

総合スコア41

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryuji1213

2017/03/08 11:16

|その場合、定時処理を用意する必要があります。 |DBに保存されている予約時刻に処理が起動して…のような挙動は難しいです。 →そうなのですね。。  ありがとうございます!  wheneverを利用して実装したいと思います。   |それを1分おきや1時間おきなどで呼び出すほうが良いでしょう! →ユーザーが多くなった場合に、サーバーへの不可が高くなるのを避けたかったのですが、  仕方ないですね。。
Seiga

2017/03/08 11:29

負荷量は確かに気になりますよね… 外部メールサーバーと連携するなどすれば、メール送信を予約化できると思いますが、現状ならばなるべくタスクを呼び出す回数を減らす仕様(予約可能な時間帯を制限する、予約可能時間を1時間おきにする)で試行錯誤したほうがよいでしょうねー
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問