审核业务

1.用户点击发帖按钮,进行帖子发布

2.存储到mysql经验贴表中,设置帖子为1待审核状态

3.判断帖子的发布时间,如果发布时间为立即发布,那么直接存储到redis的立即审核队列(list)

4.如果帖子为未来需要发布的,在5分钟内,那么直接存储到redis的未来队列中(zset) 分值可以作为时间毫秒值

5.5分钟后的帖子,等待定时器每隔5分钟执行一次扫码查询,会有一个定时任务,每隔5分钟执行一次,查询数据库中5分钟内需要发布的帖子

6.把查询到的需要5分钟内的帖子,存储到未来队列中

7.还有一个定时器,每隔一分钟,把未来队列满足发布时间的数据,存储到立即消费队列中进行消费端的消费

8.消费端,帖子微服务开始进行任务的审核功能,

9.通过OCR光学识别时间,抽取图片中的文字,把所有的图片和文字,封装到一个map集合中

10.调用DFA敏感词库,进行自敏感词匹配,如果存在敏感词,修改状态为2 审核失败,设置原因,存在敏感词

11.如果帖子内存不存在敏感词,那么进行下一步

12.调用阿里云的文本审核接口,进行文本审核,第一种情况Block 代表拒绝,修改审核状态为2,代表审核失败,设置原因,存在违规词。 第二种情况下,返回review 代表文章没法确定,修改状态为3,切换到人工审核,结束

第三种情况Pass 代表审核文本通过,进行下一步审核。

13.文本审核成功,进行图片审核,第一种情况Block 代表拒绝,修改审核状态为2,代表审核失败,设置原因,存在违规词。 第二种情况下,返回review 代表图片没法确定,修改状态为3,切换到人工审核,结束

第三种情况Pass 代表审核图片通过,进行下一步审核。

14.图片审核成功,单表审核逻辑没有存在文本,通过Feign发送消息给文章微服务进行数据的保存(帖子表,帖子内容表,帖子作者表)

15.保存帖子数据库成功后,使用MQ发送消息同步搜索es 。

16.如果整个流程结束,代表帖子发布成功,修改文章状态为9,已发布。

你可能感兴趣的:(java)