活码
2024-11-12 10:51:44 0 举报
活码流程图
作者其他创作
大纲/内容
最终的活码map
幂等处理,目的是验证如果之前有节点已经处理过则无需再入库
5个服务节点开始从Kafka拉取消息,每次只拉取一条消息
因为只能有一个节点可以执行数据初始化
不存在
将活码分组每组200个一共100组
异常
数据对比
先截取前6条活码ID尝试验证记录表Record是否存在
根据活码数量开启6个线程将200活码进行拆分每个线程处理34条
处理结果
先清空Record表
最终要调企微的活码map
从Kafka中消费
获取Redis锁
将200活码一次性插入Record表初始状态“进行中”
for循环34条请求企微API接口替换活码成员
成功
存在
从数据库查询全量活码以及成员ID按照特殊>周期>普通进行map覆盖得到最终的活码
记录执行状态
以组为单位将200个活码打成json串发送Kafka(共100条消息)
先记录到一个失败的list中
与Redis进行对比将缓存不存在的活码或者成员ID信息有差异的从map中筛选出来得到最终要调用企微的活码
汇总34个活码的执行状态统一更新到Record表中
得到需要重新调用企微的活码列表
定时任务启动
定时任务结束
查询Record表
扫描Record表筛选这200活码中状态是“进行中”和失败的
待34条处理完后再将这批失败的活码重新再调下企微如果还是失败则打印异常日志
Redis缓存
Kafka
DB
将这条消息中的200个活码解析出来
0 条评论
下一页