在Rails站点上显示Twitter订阅源(带历史记录)的最佳方式

在一个Rails网站上,我想显示一个特定的Twitter提要,分页,以便访问者可以看到以前的推文(尽可能远的回来)。

我使用Twitter方法实现了它,使用了搜索方法,它有一个很好的分页方法,但是限制了Twitter只返回过去两周的法规。 因此,在返回几页之后,它将无法再获取。

我可以使用user_timeline方法,使用max_id然后执行我自己的分页(将最后一个项目的max_id传递回控制器以获取下一批次)。

或者,我可以有一个rake任务,经常轮询Twitter提要(使用cron),并将推文存储在数据库中。 该网站将为数据库提供服务,而不是查询Twitter。

哪种方法最好或推荐? 我不喜欢将推文存储在数据库中,但这也会解决查询Twitter的延迟问题(尽管我可以使用片段缓存来克服这一点,除非我无法使用它阿贾克斯)。

感谢您的建议。

我要把推文存储在数据库中。
因此,即使Twitter处于脱机状态,您也不会遇到长时间的负载问题。 您只需依赖您的数据库,就会适当地显示推文。
只有你的后台工作会失败,因为twitter不可用。 但这不是一个真正的问题。

我在这里采取相反的观点,由于各种原因,在您的数据库中存储推文并不是一个好主意。

  1. 你永远无法确定你是否已经获得了所有最近添加的推文,因为可以快速连续添加一堆。 当然,你可以让cron工作更频繁地运行,但接下来我们会遇到下一个问题。

  2. 如果推文被删除,无论出于何种原因,你的应用仍将缓存它们,这也是我不错的做法,因为它们原因会被删除。

说实话,我不会让你的应用程序提供推文,但是在页面加载时会有一个“小部件”(jquery等),它们会喜欢它们,并且看看在那里实现某种forms的分页。

我们将推文下载并存储在本地数据库中。 我最近写了一篇关于我们如何实现这个目标的博文:

http://www.arctickiwi.com/blog/16-download-you-twitter-feed-using-ruby-on-rails-with-oauth

然后,您可以使用will_paginate来处理您的分页并返回到您想要的位置。