Twitter 100亿条信息引发的血案

3 月 5 日, Ray Chow 发表于 小关注, 14 回应

(新浪科技讯)北京时间 3 月 5 日上午消息,据国外媒体报道,Twitter 信息统计网站 Gigatweet 的数据显示,截至北京时间今天上午 9:40,Twitter 信息发送总量已经突破 100 亿条。

虽然新浪科技一再的宣称这是据国外媒体报道的,这则消息却导致了国内月光博客开发的 Twitter 同步程序出现严重错误,一大批使用此程序的同学们不幸中招,100 亿条之后发布的 Tweets 被不停的复制到同步的微博。

据月光博客分析,此同步程序读取数据库时通过 id (也就是 Tweets 的序号)这个字段进行排序,在 id 大于 100 亿时排序就发生了错误。月光博客对此问题进行了修复,使用 Tweets 的发布时间进行排序,以后 Twitter 的消息再多应该也不会出问题了。

您可以在 http://code.google.com/p/twitter-feed/source/browse/trunk/twitter.py 中获取修复的 twitter.py 文件(请注意不要在此处选择另存为,而是打开后复制代码)。

手动修改方法:找到 id=db.StringProperty() 一行,在后面增加一行 created = db.DateTimeProperty(auto_now_add=True) 。找到 msg=db.GqlQuery(“SELECT * FROM Twitter ORDER BY id DESC”) 一行,将其修改为 msg=db.GqlQuery(“SELECT * FROM Twitter ORDER BY created DESC”),最后使用 appcfg.py 更新即可。

Follow5 用户请将 api_key 修改为 9E76EE7693D280446FB6CA4A30754ED8,原来的 Key 已经失效。

Follow5 公司的服务态度十分值得称赞,但某些微博服务商可能只封锁了 GAE 的 IP,没有与用户展开任何联系。

经过我多次测试,使用此 GAE 程序同步嘀咕时会发生错误导致代码中出现在嘀咕前的微博循环出现相同消息,而之后的微博接收不到消息,请使用 # 将同步嘀咕的代码注释,使用 Follow5 的同步功能同步嘀咕。

注意如果长时间未同步,发生 google.appengine.runtime.DeadlineExceededError 错误是正常的,这个错误指操作时间过长或资源占用过多。

项目地址:http://code.google.com/p/twitter-feed/

SVN Checkout地址:http://twitter-feed.googlecode.com/svn/trunk/

原文请参见:http://www.williamlong.info/archives/2106.html

无觅相关文章插件,快速提升流量

固定链接: http://beamnote.com/2010/twitter-10g-tweets.html

订阅本文 RSS 以获取最新动向。

发表评论或者发送 Trackback

14 回应

  1. 不错,网站漂亮。欢迎来52beta.com做客。

  2. 100亿条,我甚至担忧twitter是否真的有能力继续处理不断膨胀的数据。
    而这个消息可以看出,月光博客的效应有多大。

  3. QQ剛剛在綫突破一億人,每人發一條消息,那就是一億條,算起來每天消息得多少億啊

  4. 100亿条信息,那是个什么概念

  5. 不错 我也刚刚发布了此文

发表评论

必填区域以 * 标出

*
*