一、服务器背景
1台4核服务器
二、jieba分词问题探究
在本例中,主要针对的是对玩家每天的聊天记录进行一个热点追踪,技术层面不难,无非就是对玩家的语句进行清洗,分词,然后做主题提取等一些常规的流程。但是难点在保证查询效率的同时,怎么把庞大的玩家聊天记录数据存储下来以及进行条件式筛选。
三、Celery异步任务
1、什么是Celery Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列, 同时也支持任务调度,Celery一个worker就是一个守护进程。 2、Celery由什么组成 Celery的架构由三部分组成,消息中间件,任务执行单元和任务执行结果存储组成。 本人使用的架构是 Celery+Redis。 Celery使用到了工作流模式(group+chord) Redis用来存储消息任务参数以及工作流的数据存储。
四、Celery任务构建
1、由于聊天记录比较大,在单个进程任务中jieba.lcut耗时较长,因此考虑对任务进行分割。分割的方式有多种,在这里仅介绍案例中使用的,首先是以天为分割点,然后再以玩家的等级进行二次分割。
例如:总任务是查 玩家在20200406跟20200407这两天的玩家聊天记录的热点排名,在本次切割下会将天数跟玩家等级进行切割,分割成4个worker, worker_1 : 2
|