2015-07-21 37 views
0

我在想如何在rails中实现像cron这样的功能。我应该如何在rails中实现“cron”功能?

例如,您有一个成员模型。每次新会员注册时,我的系统都会发送短信欢迎消息。但是,如果此用户之前已被迎接,请勿再次发送。因此,我希望每10分钟查看一下成员表,并看看我应该向谁发送信息。

这只是一个例子,我意识到这是更容易实施,否则。不过,我想知道是否对于像任务这样的cron任务,必须查看活动记录

1)我应该在哪里放置脚本? 2)是否直接通过活动记录访问数据库是一种很好的做法? 3)我应该如何使用宝石?或者在这种情况下使用系统cron更容易实现?

谢谢!

+0

如何创建rake任务(即'rake greet_new_member')并使用cron每10分钟运行一次该任务? – yihangho

+0

我同意@yihangho一个耙子任务会让你快速地使用一个普通的cronjob –

回答

0

这被称为异步作业。 Resque和Sidekiq是这方面的流行解决方案。

或者您可以创建一个rake任务,并将其放入任何时间或直接发送给cron。当然,在Rake任务中使用ActiveRecord完全没问题。

2

什么时候是围绕系统cron的一种“包装”工具;没有理由编写自定义批处理来设置rails环境并启动任务,因为无论何时做这个工作。 它可以很好地与capistrano和mina搭配使用,它们都可以在部署期间更新crontab。

查看whenever documentation并在mina documentation有一个更清晰的想法。

干杯!

相关问题