Ruby on rails 3 在Rails3/Heroku Cedar部署中重复运行后台脚本

Ruby on rails 3 在Rails3/Heroku Cedar部署中重复运行后台脚本,ruby-on-rails-3,heroku,Ruby On Rails 3,Heroku,我正在开发一个Rails3应用程序,它将在Heroku Cedar stack上运行,并且需要不断检查特定标签下的新推文。我有这样做的逻辑,但我想在后台运行此任务,以免干扰主应用程序的性能。我还需要将发现的任何新推文写入数据库,这样我就需要访问活动记录。我正在寻找关于实现这一点的最佳方法的建议。我也做了类似的事情,如果tweet稍微过时,这对我来说并不重要-我们使用调度程序执行10分钟的rake任务,该任务正在查看标签。如果我们觉得10分钟太频繁,我们可以将执行频率更改为每小时/每天。您可以使用

我正在开发一个Rails3应用程序,它将在Heroku Cedar stack上运行,并且需要不断检查特定标签下的新推文。我有这样做的逻辑,但我想在后台运行此任务,以免干扰主应用程序的性能。我还需要将发现的任何新推文写入数据库,这样我就需要访问活动记录。我正在寻找关于实现这一点的最佳方法的建议。

我也做了类似的事情,如果tweet稍微过时,这对我来说并不重要-我们使用调度程序执行10分钟的rake任务,该任务正在查看标签。如果我们觉得10分钟太频繁,我们可以将执行频率更改为每小时/每天。

您可以使用定期执行Rake任务(或其他脚本)


或者,如果您正在检查响应某个用户操作或其他事件的tweet,您可以使用任务队列,如。

谢谢您的回复。我考虑过使用调度器插件,但10分钟的频率不足以满足我的需要,显然也不能保证。我决定使用rufus scheduler gem,每10分钟运行一次Model方法,尽管我担心这可能会影响应用程序的性能。为了防止它影响应用程序的性能,您需要通过rake任务或工作进程(可能是时钟进程)来运行它,因此它在web进程之外的自己进程中运行。另外,您也可以分叉主进程并沿着线程运行。您能告诉我一些示例代码的方向吗?这些代码将涵盖分叉主进程。谢谢您的回复。我已经实现了rufus调度器gem,它似乎是与您的建议类似的解决方案。