我们如何使用数据库时间使用rails向特定日期和时间添加作业到sidekiq,我想在预约时间到来时发送电子邮件,那么最好的方法是什么?
答案 0 :(得分:1)
将约会日期(或更好的特定约会通知日期时间)附加到约会模型。
然后让每分钟排队的后台作业检查关闭事件的所有未发送通知(例如,将来约会通知低于1分钟并且尚未发送的事件)以及每个约会队列的电子邮件被发送。
您可能希望使用sidekiq
对电子邮件进行排队,并使用clockwork
等cron系统将sidekiq
上的任务排入队列,以便每分钟检查一次是否发送通知。< / p>
答案 1 :(得分:1)
您可以参考rails 4.2中引入的本机Active Job API(位于Sidekiq前面)。
使用rails API构建作业,在conf文件中指定使用sidekiq,rails将把作业放在sidekiq中。
优点:您可以切换到另一个排队宝石,更容易在特定日期延迟工作,您可以执行after_action,这通常是Sidekiq的专业版。
请参阅教程以了解有关它的更多信息:http://edgeguides.rubyonrails.org/active_job_basics.html
一个简单的例子:
<?php
$children =& get_children( 'post_type=page' );
if (!empty($children)) "<h2> title</h2>";
?>
希望有所帮助