如何在rails中实现类似“cron”的功能?

时间:2015-07-21 23:53:05

标签: ruby-on-rails ruby cron

我想知道如何在rails中实现类似cron的功能。

例如,您有一个成员模型。每次新会员注册时,我的系统都会发送短信欢迎信息。但是,如果此用户之前受到过欢迎,请不要再次发送。因此,每隔10分钟,我想查看会员表,看看我应该将消息发送给谁。

这只是一个例子,我知道否则更容易实现。但是我想知道是否有像任务一样的cron工作,它必须查看活动记录

1)我应该把脚本放在哪里? 2)直接通过活动记录访问数据库是一个好习惯吗? 3)我应该随时使用宝石吗?或者在这种情况下使用system cron更容易实现?

谢谢!

2 个答案:

答案 0 :(得分:2)

每当有一种"包装"系统cron周围的工具;没有理由编写自定义批处理来设置rails环境和启动任务,就像完成这项工作一样。 它与capistrano和mina很好地兼容,两者都能够在部署期间更新crontab。

请查看whenever documentationmina documentation,以便更清楚地了解。

干杯!

答案 1 :(得分:0)

这称为异步作业。 Resque和Sidekiq是最受欢迎的解决方案。

或者您可以创建一个rake任务并将其放入或者直接放入cron。当然,在rake任务中使用ActiveRecord是完全可以的。

相关问题