2017-09-28 10 views
0

私は登録されていないユーザーが私に電子メールを送ってもファイルをダウンロードできるようにするサブスクリプションベースのサイトを持っています。私は次のワークフローが欲しい。今後一度実行するタスクをRailsで作成するにはどうすればよいですか?

  1. ユーザーのメールアドレスに

  2. レールを与えるには、ユーザーが7日にサインアップしていない場合

  3. ユーザーのダウンロードはファイル

  4. を電子メールで送信、将来的に7日間のタスクを作成します、ユーザにメールを送信する

I n #2と#4を追加してください。今はActiveJobとSidekiqを使ってダウンロードメールを送信するジョブを作成しています。 ActiveJobを作成して将来実行する方法はありますか?将来の仕事は私のDBと照合するために私のレール環境にアクセスできますか?

答えて

1

確かにActiveJobを1週間でエンキューできます。ジョブの実装では、ユーザーがサインアップしていない場合、条件付きで電子メールを送信します。 http://guides.rubyonrails.org/active_job_basics.html#enqueue-the-job

例:ActiveJobにガイドレールを参照してください

# Enqueue a job to be performed 1 week from now. 
UserConfirmationJob.set(wait: 1.week).perform_later(user) 
+0

ありがとう、それは私が必要です。そして、私はキューに入れられたジョブをテストするためにこの宝石を見つけました:https://github.com/gocardless/rspecactivejob – jlee

+0

素晴らしい!これがうまくいくなら、あなたは私の答えを受け入れることができますか? –

0

あなたは、このようにそれを行うことができます。

  1. ユーザーは、電子メールを提供します。
  2. あなたは彼にダウンロードを許可します。
  3. 毎日スクリプトを実行して、7日前にメールを送信したユーザーがサインアップしているかどうかを確認します。
  4. 登録していないと、彼にメールを送ります。
+0

毎日ダウンローダーのリストに対してすべてのユーザーをチェックする必要があります。その後、私は、7日間の電子メールをすでに受信したかどうかを確認するために、Usersテーブルに列を追加する必要があります。私が30日後に別のものを送りたいのであれば、もっと複雑になるでしょう。 – jlee

関連する問題