1

我终于有时间研究流式传输、守护进程和 cron 任务以及围绕它们构建的所有简洁的 gem!但我不清楚如何/何时使用这些东西。

我有几个问题:

1) 如果我想拥有一个不断更新、实时更新的网站,包括我的 Facebook 朋友的活动信息、我最喜欢的书上最新的亚马逊书评以及我的 Twitter 信息,我会创建一些自定义的吗?使用 Daemon gem、用于流式传输内容的 ruby​​-yali gem 和 Each gem 的流式实现,可以说,每 3-10 秒检查一次这些站点,以查看我要查找的内容是否已更改?它会这样工作吗?还是通常/最好以不同的方式完成?

2) (1) 处理器是否过于密集?鉴于您想要实时更新的网站没有流媒体 API,您是否有更好的方法,一种更好的实时内容流媒体方式?我正在考虑每隔几秒钟在一个单独的小型 ruby​​ 应用程序(带有守护进程和 cronjobs)中发送一个请求,获取 json/xml 结果,使用 nokogiri 删除我不需要的东西,然后通过评论/书籍/帖子/等的小列表,构建更改的提要,并使用 Juggernaut 或其他东西将这些更改推送到某些 Rails 应用程序。那行得通吗?

我想这一切都归结为一个问题:

某些网站最新内容的实时流式传输是如何工作的?你怎么做呢?...所以如果有人在我的网站上,他们可以实时看到刚刚发布的新消息或新书?

期待你的答案,兰斯

4

1 回答 1

1

首先,如果一个网站不提供 API,则强烈表明解析和提取其数据是不合法的,但是您最好检查他们的使用条款和隐私政策。

就我个人而言,我不知道有什么叫做“Streaming API”的东西,但是假设他们有一个 API,你仍然需要提取它提供的结果(xml,json,....),解析它们并将它们呈现给用户。该策略将根据您的应用类型而有所不同:

  1. 桌面应用:然后你可以直接拉取数据,解析它并提供给用户,很多应用就像Twhirl一样。
  2. Web 应用程序:那么您需要减少提取数据的时间。通常,您将从 API 中提取数据并将其存储。但是,存储数据有点棘手!您不希望您的数据库被应用程序锁定,因为它会通过极端的拉取查询来检索数据。一种方法是使用推送方法;在这种情况下按照选项 2 获取数据,然后推送给用户。如果您想要即时更新,例如聊天,您可以查看orbited。如果可以将数据保存到某种用户和关注者的“收件箱”,那么据我所知,最简单的方法是使用 IMAP 将更新发送到用户收件箱。
于 2009-10-01T12:13:29.693 回答