ruby-on-rails – 如何安排我的模型和cron rake任务以不同的开始
我正在重新评估我的模型和方法,我正试图解决一个特定的问题.我有一个可以属于Campaign的联系人,这是一系列活动,例如电话和电子邮件,每个活动都有一些天被指定为确定何时发送的属性.
我希望cron工作能够查看和查看今天到期(或者可能已经过期)的电子邮件并点击这些电子邮件. 联系人都有自己独立的开始日期. 有时需要进行一次通话,比如从开始6天开始,直到10天才完成.这意味着同一活动中的电子邮件设置为从开始8天开始,需要再延迟4天,从开始时间延迟到12天,但仅限于特定联系人,如果延迟呼叫是联系人. 我希望人们如何接近建模这一点,特别是在任何一天都会提出正确的电子邮件. 我的方法遇到了一些挑战: 1)当没有要发送的电子邮件时,我的错误是nil.我试图抓住它,想知道是否有更好的检查方法.人们如何处理? 2)你如何计算级联延迟?我使用一种复杂的方式首先检查已完成的所有内容的最后日期(例如,已完成的项目在ContactEmail或ContactCalls中有自己的记录).然后我找到了与属性’days’的区间差异.然后我将该间隔添加到最后一项完成的日期. 解决方法
我还建议使用
delayed_job来处理电子邮件的发送.使用delayed_job,您将拥有一个具有相关时间的任务队列.它允许您在将来的特定时间安排任务.它可能比使用cron更方便.
就调度而言,我认为在调用完成之前电子邮件不会被发送,因此应该在应用程序被通知呼叫完成时创建队列中的电子邮件条目.然后,日期计算应该像Time.now 4.days一样简单. 如果在电子邮件发出之前必须完成多个呼叫,那么在将电子邮件放入队列进行发送之前,您只需要检查所有呼叫是否已完成. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |