基本滴简易的feed系统
2014-04-12 21:51
169 查看
模仿之前的Feedly框架,后台消息序列用django-rq,
整个过程就是简单滴生成一个活动-创建一个Activity类,一个用来把活动分发到用户friends的分发函数,然后在需要的时候,把活动传入分发函数中,由消息队列-这里
是django-rq,来调度它
Activity-活动类
在视图里面,将feed加入消息队列
将feed分发给要friends
这里在feed在redis存储的是列表,列表名简单的就是user的id值
在用户的个人页面,简单滴从redis获取用户的feed,然后显示出来
整个过程就是简单滴生成一个活动-创建一个Activity类,一个用来把活动分发到用户friends的分发函数,然后在需要的时候,把活动传入分发函数中,由消息队列-这里
是django-rq,来调度它
Activity-活动类
from django.contrib.auth import get_user_model class Activity(object): def __init__(self, object_id, muser, user_name, c_date, thumbcontent, mobject_id, mtitle, verb): self.object_id = object_id self.muser = muser self.user_name = user_name self.date = c_date self.thumbcontent = thumbcontent self.mobject_id = mobject_id self.mtitle = mtitle self.verb = verb def get_object_id(self): return self.object_id def get_muser(self): return self.muser def get_user_name(self): return self.user_name def get_date(self): return self.c_date def get_thumbcontent(self): return self.thumbcontent def get_mobject_id(self): return self.mobject_id def get_mtitle(self): return self.mtitle def set_real_user(self): self.ruser = get_user_model().objects.get(pk=self.muser) def get_verb(self): return self.verb
在视图里面,将feed加入消息队列
feed_obj = tmp_obj.create_activity() feed_list = self.request.user.friends.all() redis_c = get_redis_connection('feed_storage') feed_queue.enqueue(distr_object, feed_obj, feed_list = feed_list)
将feed分发给要friends
def distr_object(t_object, feed_list): redis_c = get_redis_connection('feed_storage') pickle_object = pickle.dumps(t_object) for i in feed_list: redis_c.lpush(i.id, pickle_object)
这里在feed在redis存储的是列表,列表名简单的就是user的id值
在用户的个人页面,简单滴从redis获取用户的feed,然后显示出来
class FeedPage(ListView): template_name = 'myapp/index.html' model = MyObject paginate_by = 30 context_object_name = 'feedobject' def get_queryset(self): redis_c = get_redis_connection('feed_storage') user_feed = [] for i in redis_c.lrange(self.request.user.id,0,30): j = pickle.loads(i) j.set_real_user() user_feed.append(j) return user_feed
相关文章推荐
- Angularjs,WebAPI 搭建一个简易权限管理系统 —— 基本功能演示(二)
- Angularjs,WebAPI 搭建一个简易权限管理系统 —— 基本功能演示(二)
- 数据库复习笔记——数据库系统的基本概念
- Android系统架构基本模式解析
- IDS入侵检测系统基本知识-术语篇(续)
- Linux系统下iptables基本配置方法
- 机房收费系统基本流程
- 休闲小趣一一3Dmax“简易教程”——1.3 3Ds MAX 选择与移动物体(基本操作)
- UNIX/LINUX中一些常用的基本系统数据类型
- 简易measure系统的开发
- 操作系统的文件系统基本调用命令
- 第1天:Linux操作系统常用基本知识及linux系统下java环境配置
- Linux基本操作系列(二):在CentOS 6.8系统上安装Tomcat并配置自动启动
- 谷歌TensorFlow人工智能学习系统简介及基本使用入门
- 计算机系统概论之计算机的基本组成
- MFC下编写的简易画图系统
- 系统栈的相关问题(1)--栈的基本了解
- Tiny210v2( S5PV210 )平台下创建基本根文件系统
- 数据库系统的基本概念(第一章)-----数据库管理系统(DBMS
- 推荐一篇非常不错的关于Linux系统硬盘、分区及文件系统的基本概念介绍文章