rails + sidekiq特定日期和时间作业

时间:2015-06-17 12:51:37

标签: ruby-on-rails

我们如何使用数据库时间使用rails向特定日期和时间添加作业到sidekiq,我想在预约时间到来时发送电子邮件,那么最好的方法是什么?

2 个答案:

答案 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>"; ?>

希望有所帮助