青青子衿, 悠悠我心, 但为君故, 沉吟至今
« Wordpress的RSS“实时”了对于网吧门背后的更多思考 »

Twitter的100亿条信息带来的BUG

  今天上午的Twitter信息统计显示,Twitter信息发送总量已经突破100亿条。此时距离Twitter信息总量突破50亿条仅过去5个月。

  这个消息对Twitter来说是个好消息,但对于使用我先前开发的GAE同步程序的用户来说是个灾难,因为原先程序有个BUG,在Twitter信息量大于100亿条的时候会出现,导致用户的Twitter的ID号码在10000000000之后的信息会反复发布。

  造成这个问题的原因是因为原先的数据排序通过id号进行,当id号升到11位的时候,该数据的排序错误,反而排在10位的id号后面。

  目前我已经做了一个补丁程序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更新即可。

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

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



  除非注明,月光博客文章均为原创,转载请以链接形式标明本文地址

  本文地址:http://www.williamlong.info/archives/2106.html
  • 文章排行:
  • 1.fuq
  • 不知什么办法可“跟随我的推特”,总是显示 “位于 http://twitter.com/williamlong 的网页可能暂时无法连接,或者它已被永久性地移动到新网址。”,有何办法接入?
  • 2010/3/6 12:16:41   支持(17)反对(6) 回复
  • 2.乘风归来兮
  • 我为twitter贡献了0.0000...1%信息
  • 2010/3/8 12:06:34   支持(10)反对(5) 回复
  • 3.裸奔的鱼
  • 我传上新文件还是不行呢,还在重复。看你在推上说要批量删除gae数据库里的id号。这个程序已经执行此操作了吗,如果没有该怎么清空呢。
  • 2010/3/5 14:10:34   支持(11)反对(7) 回复
  • 4.紧急求助
  • 今天我的所有电脑都不能登录WPS在线文档,其中三台是连电信宽带的,一台是连联通宽带的。上午已经登录的电脑被发现不能打开在线文件,下午才想登录的电脑输入用户名和密码之后就一直在不停的与服务器进行连接始终无法登录了。超级无敌郁闷呀,由于对谷歌的超级崇拜和信任,所以一直都在使用WPS在线文档,并且大部分重要的文档都是存放在WPS在线文档上。这一下就让我全线停机了。。。
  • 2010/3/5 23:51:40   支持(13)反对(9) 回复
  • 5.螃蟹有所谋
  • Error: Server Error
    The server encountered an error and could not complete your request.

    If the problem persists, please report your problem and mention this error message and the query that caused it.

    显示上面的,今天的一直无法同步!请楼主解决一下,谢谢!
  • 2010/3/6 22:26:01   支持(11)反对(7) 回复
  • 6.napbonking
  • 新浪貌似又封了gae的ip。。然后follow5的貌似同步不过去。。一定要申请api?。。
    williamlong 于 2010-3-8 17:34:06 回复
    的确又封了。没办法啊。
  • 2010/3/8 17:27:16   支持(10)反对(6) 回复
  • 7.elapsezyh
  • 如果同时开了许多支同步,其中有一个不能用就会影响其他,我把我用的几个分别在GAE里建独立的app试了一下,貌似网易和ping.fm是可用的,sina、digu不可用
    另外hellotxt也不可用,我在hellotxt里面申请了一个app,得到了user_key和API_key,但下面显示了一行This application is not enabled.不知如何解决。。。
  • 2010/3/9 2:03:34   支持(10)反对(6) 回复
  • 8.老实人博客
  • 新浪有这个东东?去看看。
  • 2010/3/15 17:12:48   支持(8)反对(4) 回复
  • 9.kk
  • 请问如果想同步官方RT该怎么改?
  • 2010/3/15 22:05:13   支持(9)反对(5) 回复
  • 12.怡红公子
  • 汗,果然是程序出问题了……T_T我的sina微博已经彻底沦陷了……
  • 2010/3/7 17:33:41   支持(9)反对(7) 回复
  • 13.williamlong
  • 嘀咕把GAE的IP封了,因此会导致其他帐号如新浪微博、网易微博等出现刷屏现象,现在同步的同学请先将嘀咕的帐号注释一下,等嘀咕将来取消封锁后再添加。
    怡红公子 于 2010-3-8 17:45:38 回复
    原来如此……不过……偶就是想同步嘀咕啊……额,看来没办法了……==我还是先用下那个PHP版的急用吧……
  • 2010/3/8 13:29:13   支持(10)反对(8) 回复
  • 15.月落天涯
  • 八百年发布一次……还要翻墙 郁闷
  • 2010/3/5 14:12:06   支持(8)反对(7) 回复
  • 17.sevenseven
  • 请教一下为啥新浪的无法同步?网易的可以了,检查过新浪的用户、密码都没有错误,怎么就不行呢,难道是因为用hotmail邮箱而不是新浪邮箱的缘故吗?
    williamlong 于 2010-3-5 19:57:37 回复
    新浪把GAE的IP封了。
    Allen 于 2010-3-6 14:31:43 回复
    我的sina还能同步,可是以前的那个Twitter.py总是要重复的提交,郁闷。这下好了 Thanks! William
  • 2010/3/5 17:30:31   支持(6)反对(5) 回复
  • 19.napbonking
  • 能不能写个写入微博通的呢。。
  • 2010/3/5 23:03:10   支持(7)反对(6) 回复
  • 20.LAONB
  • 你的PY是指python吗?老胸,你好专业。
  • 2010/3/6 8:56:49   支持(11)反对(10) 回复
  • 21.袋鼠网迹
  • 呵呵、、同样的一件事就可能带来两种截然不用的影响,这样的100亿对TWITTER来说真不知道是洗具还是杯具啊!!
  • 2010/3/6 11:15:53   支持(5)反对(4) 回复
  • 22.zackfly
  • 我的新浪也是不断重复相同的微博
  • 2010/3/6 14:48:01   支持(8)反对(7) 回复
  • 23.Dave
  • 晕,难怪,我新浪微博那边都已经刷屏了1000条了近~差点被封号~
    火恋神父 于 2010-3-17 11:34:17 回复
    我的已经被封了!
    还好有两个号!!
  • 2010/3/7 1:24:53   支持(8)反对(7) 回复
  • 24.Bronco
  • 之前我也是修改之后仍然重复发布,后来把GAE的datastore清掉就好了。另外似乎digu无法进行同步了?直接访问api地址不断弹出身份验证对话框,莫非账户被ban了?
    napbonking 于 2010-3-7 13:33:03 回复
    嘀咕。。我一旦同步嘀咕。。新浪网易方面就不断重复。。一取消嘀咕就不重复= =。。每次update都清除了datastore的了
    Bronco 于 2010-3-7 20:45:14 回复
    update似乎不会自动清除datastore,需要进到控制台,打开datastore view,将数据全部删除。反正我删除之后就好了,目前能正常更新Sina,嘀咕不行,似乎API有问题。
  • 2010/3/7 10:04:03   支持(11)反对(10) 回复
  • 25.luodhs
  • 我只同步到FOLLOW5的,再转发到其他微博.昨天好像又不能用了.
  • 2010/3/8 11:35:15   支持(7)反对(6) 回复
  • 26.napbonking
  • 啊。。新浪又解封了gae貌似
  • 2010/3/10 16:55:41   支持(10)反对(9) 回复
  • 28.jackhz
  • 月光兄Python技术炉火纯青啊,
    短短几行代码,就搞定了
  • 2010/11/29 4:06:58   支持(9)反对(8) 回复
  • 32.S
  • 重复問題突然出现了,上午还好好的.中午过后似乎就出問題了.
  • 2010/3/6 21:26:34   支持(9)反对(9) 回复
  • 34.SUN
  • 你好,月光兄。
    我更新你的代码后,且更换了follow5的新api,以及删除了id为100亿之后的推,但还是出现了重复推消息的问题。

    我设置的是同步到sina,follow5, digu, ping.fm。现在的结果是sina不停在推我一条id号小于100亿的推,而其他的微博则没有更新。

    我确信已经更新完毕GAE,不知道问题出在哪里?
  • 2010/3/7 9:23:01   支持(7)反对(7) 回复
  • 35.虫虫
  • 谢谢月光~立刻去看下能不能解决。。。
  • 2010/3/5 18:23:25   支持(7)反对(8) 回复
  • 36.玩家博客
  • 呵呵,看不懂,回家睡觉>>>>>>>>>>>>>>>>>>>>>>
  • 2010/3/6 3:14:44   支持(8)反对(9) 回复
  • 38.怡红公子
  • 为啥米我的定时执行总是失败捏?求解啊^
    怡红公子 于 2010-3-8 13:04:13 回复
    把嘀咕取消掉之后就正常了,汗!
  • 2010/3/8 12:33:23   支持(5)反对(6) 回复
  • 39.wesai
  • 真是个高手,学习了,谢谢了。
  • 2010/3/5 13:53:57   支持(5)反对(7) 回复
  • 43.沿阶草
  • 用了升级昨天都好好的。只有sina和F5。
    今天网易那边又重复不断,不知道为什么。又有问题。
    看月光你自己的却很正常,我RP问题?
    anndi 于 2010-3-6 22:31:42 回复
    更新后依旧重复发布,主要是163和新浪,只好暂停程序了
  • 2010/3/6 14:14:39   支持(7)反对(9) 回复
  • 44.keon
  • 新浪和网易的一直再重复~~~HELP
  • 2010/3/7 12:32:35   支持(5)反对(7) 回复
  • 45.anubiszxm
  • 现在程序不更新了,昨天SINA那里不停的重复GAE IP被封
  • 2010/3/8 9:55:54   支持(6)反对(8) 回复
  • 46.shiqianlu
  • 原来是这个原因.
    人家直接骂我是畜生,刷屏刷的.汗

    看了大家的留言,自己申请F5的API吧,很好申请的.
    然后新浪,嘀咕什么的直接从F5过去.
  • 2010/3/10 13:00:09   支持(11)反对(13) 回复
  • 49.kenneth
  • Twitter 怎么不早些发现这个问题呢?
  • 2010/3/5 14:10:51   支持(6)反对(9) 回复
  • 50.leon
  • 终于等到你这篇文章了,晚上回去试试
  • 2010/3/5 15:11:27   支持(6)反对(9) 回复
  • 51.FlyChina
  • 鄙视一下,我的sina微播因为这个bug少了近三分之一的follower。
  • 2010/3/5 17:52:21   支持(4)反对(7) 回复
  • 52.williamlong
  • 腾讯微博今晚开放应该是谣言,也可能是炒作,要真的开也不会选在晚上开啊,人家都下班回家去了,而且现在正是两会期间。
  • 2010/3/5 19:56:58   支持(3)反对(6) 回复
  • 53.zackfly
  • 新浪微博那个GAE的IP还会解封吗?
    williamlong 于 2010-3-6 13:32:04 回复
    现在已经解封了。
    Sevenseven 于 2010-3-8 8:50:08 回复
    解封了?我的还是没法同步新浪。
    Jeff 于 2010-3-8 10:01:22 回复
    貌似又给封了
  • 2010/3/6 11:21:12   支持(7)反对(10) 回复
  • 55.一心而已
  • 没看太懂 10亿条确实恐怖。信息爆炸了
  • 2010/3/6 17:21:41   支持(6)反对(9) 回复
  • 57.lzlh
  • 杯具了,更新程序后都不同步了。
    我只更新了twitter.py。以前可以右键点击“链接另存为”保存,现在不知为何这样保存下来的文件非常大,有60多kb,但看你的文件列表,twitter.py只有8.6kb啊,在ff里打开twitter.py后复制粘贴到写字板里保存为unicode格式的文本文件有22kb,这样做有没有问题呢?
    裸奔的鱼 于 2010-3-5 14:37:37 回复
    回9楼

    你不能那样下载程序,那样保存下来的是个嵌带着html代码的文件。你可以只复制那个py文件的代码,复制到文本文档然后另存为twitter.py文件。最好还是按照原先的下载方式,用suv检测http://code.google.com/p/twitter-feed/source/browse/trunk ,直接重新来一遍。

    上传新文件后,貌似还会把100亿以后的消息重新发一遍,然后就恢复正常了。

    还有把".find('@',1) == -1"改为".startswith('@',1) == False" (不含引号)可以达到只转RT,[email protected],自己找的函数,请月光老师鉴定。
    纯粹 于 2010-3-5 14:41:29 回复
    上面给的那个是链接页面,不是py文件,打开后再点右边那个才是下载。假如你直接另存为的话,是一个htm文件
    lzlh 于 2010-3-5 14:57:52 回复
    我晕了,我把代码复制粘贴到pythonWin程序,显示正常,保存后再用pythonwin打开,就显示的全是等号了
  • 2010/3/5 14:28:02   支持(4)反对(8) 回复
  • 58.S
  • 非常感謝~等候F5~既然新浪封了GAE的IP,還是有F5這個途径的呢.
  • 2010/3/6 6:40:17   支持(5)反对(9) 回复
  • 59.Hivan
  • 怎样在从新下载的twitter.py内确定自己的twitter和其他微博账号呢?我找了半天没找到,还是只要从新上载就可以了?那么如果有什么差错需要从新发布该如何?
  • 2010/3/5 14:05:41   支持(3)反对(8) 回复
  • 60.frank
  • 新浪把GAE封了?????
    leon 于 2010-3-24 11:08:51 回复
    同问月光:新浪不能同步了?
  • 2010/3/23 21:29:21   支持(7)反对(12) 回复
  • 61.纯粹
  • follow5的那个公共API是被封掉了吗?无法同步到follow5了
    williamlong 于 2010-3-5 15:30:53 回复
    follow5的那个api暂时停了,等大家都更新到新代码之后可能会恢复。
  • 2010/3/5 14:34:46   支持(4)反对(11) 回复
  • 62.名人博客
  • 果然是高手,不错,用了
  • 2010/3/5 15:14:48   支持(4)反对(11) 回复
  • 63.fly
  • 已经确认更新了GAE代码 了,但还是一直重复。。。
  • 2010/3/7 14:25:20   支持(7)反对(15) 回复

发表评论:

 请勿发送垃圾信息、广告、推广信息或链接,这样的信息将会被直接删除。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 关注新浪微博:关注新浪微博
  • 关注腾讯微博:关注腾讯微博
  • 关注认证空间:关注QQ空间
  • 通过电子邮件订阅
  • 通过QQ邮件订阅

站内搜索

热文排行


月度排行

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享. 转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议.
This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.