未读消息提醒用什么思路做比较好 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
mechille
V2EX    程序员

未读消息提醒用什么思路做比较好

  •  
  •   mechille 2011-09-09 10:24:32 +08:00 604 次点击
    这是一个创建于 5212 天前的主题,其中的信息可能已经有所发展或是发生改变。
    高效并且实时...

    不球代码球思路,环境:MPMA(MAC PHP MYSQL APACHE)
    21 条回复    1970-01-01 08:00:00 +08:00
    darasion
        1
    darasion  
       2011-09-09 10:35:10 +08:00
    参考下v2ex的设计思路你就知道了,其实忒简单.
    ong
        2
    ong  
       2011-09-09 10:47:13 +08:00
    用户数大的情况,Task Queue+Memcache
    Livid
        3
    Livid  
    MOD
    PRO
       2011-09-09 10:55:15 +08:00
    1. 为需要用户知道的事件生成新的 notification。
    2. 每条 notification 带有时间戳。
    3. 记录下用户每次访问 notifications 页面的时间戳。
    4. 当新的 notification 创建好后,启动一个后台任务检查这些新的 notification 所带的时间戳是否大于用户上次访问 notifications 页面的时间戳,大于的条目的数量即是新的未读条目数量。

    GAE 有 task queue 可以用于启动后台任务。在没有此架构的环境中,可以通过 Celery 或是 CRON 来模拟实现。
    bhuztez
        4
    bhuztez  
       2011-09-09 11:00:59 +08:00
    实时的话,直接通过 XMPP 推送 ...
    mechille
        5
    mechille  
    OP
       2011-09-09 11:23:39 +08:00
    @Livid 像@+用户名这样的推送通知如何判断呢
    mechille
        6
    mechille  
    OP
       2011-09-09 11:24:04 +08:00
    @不存在 是否成立
    chloerei
        7
    chloerei  
       2011-09-09 11:26:04 +08:00
    @a href="/member/mechille">mechille 提交信息的时候用正则把 @ 后面的名字提取出来,然后到用户表搜这些名字,然后对搜到的用户发消息
    mechille
        8
    mechille  
    OP
       2011-09-09 11:27:34 +08:00
    @chloerei 果然是正则吗 - - 判断原理是根据后面的空格么 @chloerei字数字数 @chloerei 字数字数
    linchanx
        9
    linchanx  
       2011-09-09 11:30:28 +08:00
    @mechille 针对v2ex来说你只要过滤@后面a-z的字母组合就可以了 其他的空格什么的全部无视
    chloerei
        10
    chloerei  
       2011-09-09 11:32:32 +08:00
    @Livid @mechille 晕,收到三条消息
    linchanx
        11
    linchanx  
       2011-09-09 11:33:18 +08:00
    考虑到 账号有特殊字符的 像 . - 什么的 估计就要去user表 检索一下 不存在的就无视
    Livid
        12
    Livid  
    MOD
    PRO
       2011-09-09 11:37:25 +08:00 via iPad
    @chloerei 重复发送确实是个 bug,今天内修复。
    mechille
        13
    mechille  
    OP
       2011-09-09 11:38:27 +08:00
    @linchanx 原来v2ex全部都是英文id。那就简单多了~ @chloerei 呵呵果然引用一次就算一个消息啊,如果从人性化角度考虑,一篇内容引用同样的人多次。是否只提示一个消息比较合适捏?
    Livid
        14
    Livid  
    MOD
    PRO
       2011-09-09 11:40:18 +08:00 via iPad
    @mechille 是的,目前这个部分存在 bug,今天内修复。
    mechille
        15
    mechille  
    OP
       2011-09-09 15:13:09 +08:00
    忽然想到。如果是email怎么办,比如 [email protected]
    mechille
        16
    mechille  
    OP
       2011-09-09 15:14:02 +08:00
    半角.判断的么。 abc@qq com
    mechille
        17
    mechille  
    OP
       2011-09-09 15:15:14 +08:00
    圈给自己呢 @mechille 字数字数
    Livid
        18
    Livid  
    MOD
    PRO
       2011-09-10 02:35:51 +08:00
    @chloerei 重复发送的 bug 修正完毕。
    chloerei
        19
    chloerei  
       2011-09-10 11:35:24 +08:00
    @Livid @Livid

    @mechille 一是完善正则,二是发消息之前先搜索有没有这个用户
    Livid
        20
    Livid  
    MOD
    PRO
       2011-09-10 11:37:57 +08:00
    @chloerei @chloerei 嗯,现在好了。
    chloerei
        21
    chloerei  
       2011-09-10 11:53:04 +08:00
    @mechille https://github.com/chloerei/campo/blob/master/app/models/reply.rb#L37

    我一个项目里的实现,把LZ考虑的都做了处理
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3192 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 42ms UTC 11:28 PVG 19:28 LAX 03:28 JFK 06:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86