如何实现关注的消息推送?

2013-08-07 16:52:27 +08:00
 hustlzp
比如用户A会产生一些消息,如何将这些消息推送给关注A的用户?

自己的方法是:专门建立一个存储消息的数据表,字段有2个:user(消息发起者)+message(消息内容)。

然后A每发出一条消息,就向这个表插入一条数据。关注A的用户在登陆网站后,就在这个表中查询user=A 的所有条目,生成的消息展示出来。

不知道大家是怎么做的?
4907 次点击
所在节点    Python
9 条回复
llbgurs
2013-08-07 16:54:55 +08:00
看看Django或者flask的signal怎么实现的,比如 http://flask.pocoo.org/docs/signals/
felix021
2013-08-07 17:28:14 +08:00
这个应该为每个用户维护一个队列(适合在尾部添加新id的数据结构)用来存timeline,A新增一个消息的时候分配一个消息id,然后把这个消息id加入到关注A的所有用户的timeline末尾。

redis的list是一个很合适的实现。
no13bus
2013-08-07 18:05:46 +08:00
hustlzp
2013-08-07 19:35:44 +08:00
@felix021 嗯,这样更加有效率!
hustlzp
2013-08-07 19:39:29 +08:00
@no13bus nice 教程,好好看一下。
Frannk
2013-08-07 22:10:16 +08:00
补充一下:
最好进入队列 异步的处理推送
ctrlaltdeletel
2013-08-07 22:14:46 +08:00
推模式和拉模式 感觉要具体情况分析
hustlzp
2013-08-07 22:32:13 +08:00
@Frannk 恩,貌似Celery+RabbitMQ就是干这事儿的吧。
hustlzp
2013-08-07 22:32:41 +08:00
@ctrlaltdeletel 还需要在实践中摸索

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/78317

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX