这应该是后台任务吗?还有更好的选择吗?

时间:2011-02-15 01:37:19

标签: ruby-on-rails oop locking background cron

我是一个Rails noob,我正在尝试计划我正在构建的一个小应用程序的架构,以熟悉OOP概念。

基本上,它是一个播客抓取器。

我的问题是关于这个示例用户故事:

  1. 用户是播客“Buzz Out Loud”的监听者,这是一个每日播客。

  2. 用户转到我的应用中的“Buzz Out Loud”页面,其中列出了最近的十集。

  3. 用户注意到今天发布的播客大约一小时前未在我的网站上列出。

  4. 我有一些关于如何处理这个问题的想法,但我觉得我在这里错过了一个主要方面。

    我可以:

    1. 将“podcast_id”参数发送到我的方法,该方法在用户加载页面时更新播客剧集列表,然后再渲染任何内容,但这样做很多次似乎很浪费,特别是当此方法可能时可能会写入数据库。

    2. 我可以整天运行后台任务,不断收集剧集。这似乎浪费了CPU。

    3. 这必须是明确定义的策略的常见问题。有人可以教育我吗?

      谢谢,

      哈里斯

1 个答案:

答案 0 :(得分:2)

这是你想要作为后台工作运行的东西,因为在每个请求上运行它都太沉重和无用,你可以使用http://railscasts.com/episodes/128-starling-and-workling之类的后台运行宝石或查看另一个选项{{3} }。

这些截屏视频的评论部分也讨论了其他选项。您还可以使用运行脚本的cron作业每2小时检查一次新的播客,或者您需要的任何时间延迟。