Smes 流程
2019-05-31 16:16:08 0 举报
smes
作者其他创作
大纲/内容
ADD
Set(key=ids)key=userId1,value=userId1
调用算法 1
key:userId1,value:url1,ttl:60s
AKKA 调用
是
说明该用户的上一次文件上传时间在 60 秒之内
删除当前用户对应的 Redis 记录(key:unhandled-userId),从而保证当前用户 userId1 的下一个文件能够入队
该文件 file1 不入队列
新增 devicedatafiles 表记录
否,重试下载 5 次
MQ
将 userId1 存入 Redis 的 Set 中
新建 Redis 记录
定时任务
gyenno-service
上传文件 File1 到 FDFS
Redis 缓存中是否存在 key=unhandle-userId1
利用 Set 中元素不能重复的特性,来记录所有的 userId
监听MQ队列
存在
不存在
1. 下载并解析文件 file1
User1 设备上传
SET.ADD
将该文件发到 MQ 队列
说明该用户在 60 秒内没有文件上传
执行算法 2 和算法 3
查找每个 userId 的Redis 记录(key:userId)
遍历 Redis Set 中的所有 userId
场景 1:对同一用户的多个文件连续上传的情况,如果文件上传时间间隔小于 60 秒,如何处理?是只针对第一个文件执行算法 2,还是每个文件都需要执行算法 2?
MQ 线程
DELETE
下载并解析成功
analysisStep1
???
定时器设置执行间隔为 60 秒
将 userId1 存入 Redis span style=\"font-size: inherit;\
ADD/UPDATE
key:unhandled-userId1,value:url1
否
收藏
0 条评论
回复 删除
下一页