如何使用cron或延迟作业设置用户入职电子邮件?

时间:2014-06-05 22:16:16

标签: ruby-on-rails ruby-on-rails-4 cron actionmailer delayed-job

我正在尝试向尚未完成注册过程的用户发送电子邮件提醒。注册过程有三个不同的阶段:

 1. input for interested users (this will redirect them to a registration section)
 2. registration section  (this will redirect them to set-up profile)
 3. set-up profile

如果用户没有继续进行下一阶段,我想发送电子邮件提醒:

 1. after 18 hrs
 2. after 1 days
 3. after 4 days

我听说过CRON(每当宝石)和DELAYED JOBS,但不知道使用哪一个。最重要的是为什么我应该选择一个而不是另一个?

请尽可能提供示例。

3 个答案:

答案 0 :(得分:1)

我会编写一个脚本,其中包含所有计时逻辑,要发送的电子邮件,将其发送给谁等。 然后每24小时安排一次cronjob来运行脚​​本。不要尝试使用cronjobs来确定发送消息后的天数。

答案 1 :(得分:1)

你之所以选择一个而不是另一个应该是基于你想要做什么以及你是如何做的。作为一名开发人员,我会创建新的分支并尝试使用这两种宝石来查看哪种宝石更适合您和您的应用。

仅供参考。 Heroku不支持每当宝石,我相信延迟工作。这可能是你的决定因素。

答案 2 :(得分:1)

我建议你写一个检查未完成注册的函数。然后在您的服务器上,简单地每18小时,1天和4天(一行脚本)运行一个cron作业。

此cron作业调用控制器触发发送提醒电子邮件的功能。 您还可以使用sidekiq作为电子邮件发送的后台处理器。

相关问题