加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何安排我的模型和cron rake任务以不同的开始

发布时间:2020-12-17 01:57:56 所属栏目:百科 来源:网络整理
导读:我正在重新评估我的模型和方法,我正试图解决一个特定的问题.我有一个可以属于Campaign的联系人,这是一系列活动,例如电话和电子邮件,每个活动都有一些天被指定为确定何时发送的属性. 我希望cron工作能够查看和查看今天到期(或者可能已经过期)的电子邮件并点击
我正在重新评估我的模型和方法,我正试图解决一个特定的问题.我有一个可以属于Campaign的联系人,这是一系列活动,例如电话和电子邮件,每个活动都有一些天被指定为确定何时发送的属性.

我希望cron工作能够查看和查看今天到期(或者可能已经过期)的电子邮件并点击这些电子邮件.

联系人都有自己独立的开始日期.

有时需要进行一次通话,比如从开始6天开始,直到10天才完成.这意味着同一活动中的电子邮件设置为从开始8天开始,需要再延迟4天,从开始时间延迟到12天,但仅限于特定联系人,如果延迟呼叫是联系人.

我希望人们如何接近建模这一点,特别是在任何一天都会提出正确的电子邮件.

我的方法遇到了一些挑战:

1)当没有要发送的电子邮件时,我的错误是nil.我试图抓住它,想知道是否有更好的检查方法.人们如何处理?

2)你如何计算级联延迟?我使用一种复杂的方式首先检查已完成的所有内容的最后日期(例如,已完成的项目在ContactEmail或ContactCalls中有自己的记录).然后我找到了与属性’days’的区间差异.然后我将该间隔添加到最后一项完成的日期.

解决方法

我还建议使用 delayed_job来处理电子邮件的发送.使用delayed_job,您将拥有一个具有相关时间的任务队列.它允许您在将来的特定时间安排任务.它可能比使用cron更方便.

就调度而言,我认为在调用完成之前电子邮件不会被发送,因此应该在应用程序被通知呼叫完成时创建队列中的电子邮件条目.然后,日期计算应该像Time.now 4.days一样简单.

如果在电子邮件发出之前必须完成多个呼叫,那么在将电子邮件放入队列进行发送之前,您只需要检查所有呼叫是否已完成.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读