流媒体,守护进程,Cronjobs,你如何使用它们? (在Ruby中)

时间:2009-10-01 06:23:43

标签: ruby streaming cron daemons juggernaut

我终于有了第二次研究流媒体,守护进程和cron 任务和围绕它们建造的所有整洁的宝石!但我不清楚 如何/何时使用这些东西。

我有几个问题:

1)如果我想让一个网站不断更新,实时,我的Facebook好友的活动供稿,最喜欢的亚马逊书评我喜欢的书和我的推特,我只是使用Daemon gem创建一些自定义流实现,ruby-yali gem用于流式传输内容,以及Whenever gem,可以说,每3-10秒检查一次这些网站,看看我正在寻找的内容是否已经改变?它是如何工作的?或者它通常/最好以不同方式完成?

2)(1)处理器是否过于密集?有没有更好的方法来实现它,这是一种更好的实时内容流媒体方式,因为您想要实时更新的网站没有流媒体API?我正在考虑在一个单独的小红宝石应用程序(带有守护进程和cronjobs)中每隔几秒发送一个请求,获取json / xml结果,使用nokogiri删除我不需要的东西,然后只是通过一小段评论/书籍/帖子/等等,建立​​一个改变了的东西,并使用Juggernaut或其他东西将这些变化推送到一些rails应用程序。那会有用吗?

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

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

期待您的回答, 兰斯

1 个答案:

答案 0 :(得分:1)

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

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

  1. 桌面应用:然后你就可以直接提取数据,解析并提供给用户,许多应用就像Twhirl一样。
  2. 网络应用程序:然后您需要缩短提取数据的时间。通常,您将从API中提取数据并存储它。但是,存储数据有点棘手!您不希望希望您的数据库通过极端拉取查询来锁定应用程序,它将返回检索数据。一种方法是使用推送方法;在这种情况下,请按照选项2获取数据,然后推送给用户。如果您想要聊天等即时更新,请查看orbited。如果可以将数据保存到某种用户和关注者的“收件箱”中,那么我能说的最简单的方法是使用IMAP将更新发送到用户收件箱。