排队系统技术方案-架构功能图
2023-08-11 10:50:20 0 举报
用于排队系统-展示排队人数技术方案
作者其他创作
大纲/内容
检测当前request请求是否已出队&逻辑处理中
入队成功
Consumer异步任务消费端出队执行任务
出队
目前采用redis的zset数据结构来模拟实现MJ排队需求* 通过当前请求时间戳微秒数充当集合 元素score进行排序* 通过zRange获取集合元素预出队span style=\
同步返回结果
更新MjMessage表账号和redis通道信息
pushQueue写入queue异步任务队列
MJ-PC前端
think-queue队列
MJ-PC-API服务端
目前采用:php think consumer_mj_queue 自定义脚本实现守护进程实时监控集合进行出队处理
异步任务
轮询查询结果
星币预扣除(防止无限提交请求入队)
config/queue.php配置app\\queue\\Consumer作为队列消费端执行异步任务
往MJ平台投递绘图请求
消费
zRange获取指定并发数量的元素
zAdd写入集合模拟入队
标记当前request请求为逻辑处理中
MJ-PC绘图流程泳道图
目前采用:think-queue 插件redis的list队列数据结构实现异步任务处理,通过:php think queue:listen --queue taskQueue --tries 3 --timeout 300 &开启多个队列消费端并发处理投递过来的异步任务
MjQueue类consumer模拟预出队
参数验证违禁词验证参数校准
think-queue消费端
元素处理中
无空闲账号及通道
失败则更新Message
redis缓存当前请求的request参数信息
发起绘图请求
星币验证
有道API翻译
入队
Redis有序集合消费
allocateAccount按账号负载分配MJ账号
zRem删除集合元素实现真正请求出队删除账号请求通道缓存删除当前请求缓存信息
MjQueue类push模拟入队
Redis有序集合
0 条评论
下一页