我是一个Rails noob,我正在尝试计划我正在构建的一个小应用程序的架构,以熟悉OOP概念。
基本上,它是一个播客抓取器。
我的问题是关于这个示例用户故事:
用户是播客“Buzz Out Loud”的监听者,这是一个每日播客。
用户转到我的应用中的“Buzz Out Loud”页面,其中列出了最近的十集。
用户注意到今天发布的播客大约一小时前未在我的网站上列出。
我有一些关于如何处理这个问题的想法,但我觉得我在这里错过了一个主要方面。
我可以:
将“podcast_id”参数发送到我的方法,该方法在用户加载页面时更新播客剧集列表,然后再渲染任何内容,但这样做很多次似乎很浪费,特别是当此方法可能时可能会写入数据库。
我可以整天运行后台任务,不断收集剧集。这似乎浪费了CPU。
这必须是明确定义的策略的常见问题。有人可以教育我吗?
谢谢,
哈里斯
答案 0 :(得分:2)
这是你想要作为后台工作运行的东西,因为在每个请求上运行它都太沉重和无用,你可以使用http://railscasts.com/episodes/128-starling-and-workling之类的后台运行宝石或查看另一个选项{{3} }。
这些截屏视频的评论部分也讨论了其他选项。您还可以使用运行脚本的cron作业每2小时检查一次新的播客,或者您需要的任何时间延迟。