随笔分类 -  黑马头条 / 自媒体端

摘要:文章审核:按照固定的频率拉取任务,每秒钟拉取一次,再审核文章。 @Autowired private WmNewsAutoScanService wmNewsAutoScanService; /** * 消费任务【拉取任务】 */ @Scheduled(fixedRate = 1000) @Over 阅读全文
posted @ 2023-07-05 19:32 佛系粥米 阅读(6) 评论(0) 推荐(0) 编辑
摘要:文章发布——添加任务——》schedule《——拉取任务——文章审核 当前时间或未来时间都由该服务处理 1、添加任务 @Autowired private IScheduleClient scheduleClient; /** * 添加任务到延时队列中 * * @param id 自媒体文章id * 阅读全文
posted @ 2023-07-05 19:02 佛系粥米 阅读(6) 评论(0) 推荐(0) 编辑
摘要:延迟队列微服务: redis:list-执行时间<=当前时间 zset-当前时间<执行时间<当前时间+5分钟 添加任务:【以防任务数量过大在,一旦服务器挂掉,内存所有的数据都消失了,所以要做数据持久化】添加任务到数据库、符合条件的任务添加到redis【list,zset】 取消任务:删除数据库任务信 阅读全文
posted @ 2023-07-05 16:27 佛系粥米 阅读(12) 评论(0) 推荐(0) 编辑
摘要:把数据库任务定时存储到redis:当前时间 < 执行时间 <= 预设时间(当前时间+5分钟) 预加载:如果任务量特别大,一次将数据库所有future任务全都加载到redis内存,可能会导致阻塞。 1.清理缓存中的数据 2.查询小于未来5分钟的所有任务 3.新增任务到redis /** * 数据库任务 阅读全文
posted @ 2023-07-05 15:41 佛系粥米 阅读(153) 评论(0) 推荐(0) 编辑
摘要:问题描述: 启动两台heima-leadnews-schedule服务,每台服务都会去执行refresh定时任务方法 分布式锁:控制分布式系统有序的去对共享资源进行操作,通过互斥来保证数据的一致性。 分布式锁的解决方案: sexnx (SET if Not eXists) 命令在指定的 key 不存 阅读全文
posted @ 2023-07-05 10:53 佛系粥米 阅读(49) 评论(0) 推荐(0) 编辑
摘要:未来数据定时刷新——实现步骤: 定时任务/每分钟————》未来数据的keys————》按照分值查询zset,判断数据是否到期——到期》同步到Redis中的list 1、如何获取zset中所有的key? keys 模糊匹配,future。效率低 SCNA命令:SCAN 命令是一个基于游标的迭代器,SC 阅读全文
posted @ 2023-07-05 10:35 佛系粥米 阅读(42) 评论(0) 推荐(0) 编辑
摘要:实现思路: 消费任务————————》从redis中的list中pop数据——————》修改数据库的任务 参数:任务的类型和优先级 pop:取出数据并删除 删除任务&修改任务日志 /** * 按照任务类型和优先级拉取任务 * @param type * @param priority * @retu 阅读全文
posted @ 2023-07-05 09:36 佛系粥米 阅读(8) 评论(0) 推荐(0) 编辑
摘要:场景:第三接口网络不通,使用延迟任务进行重试,当达到阈值以后,取消任务。 taskId——》删除任务——》更新日志状态——》删除redis中的数据 1、根据taskid删除任务,修改任务日志状态为 2(取消) 2、删除redis中对应的任务数据,包括list和zset /** * 取消任务 * @p 阅读全文
posted @ 2023-07-05 09:18 佛系粥米 阅读(47) 评论(0) 推荐(0) 编辑
摘要:1、添加任务到数据库 2、判断当前任务的执行时间 执行时间<=当前时间:存储到 list(当前消费队列) 当前时间<执行时间<=预设时间(预设时间=当前时间+5分钟):存储zset (未来数据队列),定时刷新从zset中将任务存入list。 一、添加任务 1、创建task类,用于接收添加任务的参数 阅读全文
posted @ 2023-07-04 17:25 佛系粥米 阅读(142) 评论(0) 推荐(0) 编辑
摘要:1、在项目导入redis相关依赖 <!--spring data redis & cache--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis< 阅读全文
posted @ 2023-07-04 16:21 佛系粥米 阅读(63) 评论(0) 推荐(0) 编辑
摘要:一、heima-leadnews-schedule是一个通用的服务,单独创建模块来管理任何类型的延迟任务 二、在service下搭建heima-leadnes-schedule微服务模块,用以对其它服务提供延迟任务处理服务。 MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器; 阅读全文
posted @ 2023-07-04 15:58 佛系粥米 阅读(16) 评论(0) 推荐(0) 编辑
摘要:实现思路: 发布时间:立即发布、未来要发布 list存立即发布,redis中的list是双向链表,方便添加查找性能较高。 zset可以去重、排序,存储未来要发布的。 为什么要把任务存储到数据库中? 延迟任务是一个通用的服务,任何有延迟需求的任务都可以调用该服务,内存数据库的存储是有限的,需要考虑数据 阅读全文
posted @ 2023-07-04 14:56 佛系粥米 阅读(77) 评论(0) 推荐(0) 编辑
摘要:定时任务:有固定周期的,有明确的触发时间 延迟任务:没有固定的开始时间,它常常是由一个事件触发的,而在这个事件触发之后的一段时间内触发另一个事件,任务可以立即执行,也可以延迟 场景一:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单;如果期间下单成功,任务取消 场景二:接口对接出现网络问 阅读全文
posted @ 2023-07-04 14:42 佛系粥米 阅读(37) 评论(0) 推荐(0) 编辑
摘要:文章发布——异步调用——>文章审核 问题: 不管文章的发布时间是什么时间段都会立马进行审核,然后生成app端相关的数据 此刻:立即发布文章 未来时间:按时发布文章 文章发布——》延迟任务服务《——文章审核 阅读全文
posted @ 2023-07-04 14:31 佛系粥米 阅读(74) 评论(0) 推荐(0) 编辑
摘要:一、自媒体微服务 —— 远程调用——> 文章微服务 倘若有一个微服务报错,另一个微服务不知道,无法保证事务的一致性。 作业:使用seata来解决审核过程中的分布式事务的问题 二、倘若文章发布是一个未来时间,该如何按照精确时间发布? 如1月1号提交,但是设定发布时间是1月5号。 阅读全文
posted @ 2023-07-04 14:21 佛系粥米 阅读(8) 评论(0) 推荐(0) 编辑
摘要:文章端创建app相关文章时,生成文章详情静态页上传到MinIO中 审核文章——feign远程——>修改或创建app相关数据——异步——>生成静态文件 文章微服务 自媒体用户发布文章后 审核成功后将 异步 feign 远程调用文章微服务,在文章微服务中有个方法将通过审核的文章保存或修改文章,以供移动端 阅读全文
posted @ 2023-07-04 11:09 佛系粥米 阅读(11) 评论(0) 推荐(0) 编辑
摘要:1、在heima-leadnews-common中创建工具类,封装一下tess4j package com.heima.common.tess4j; import net.sourceforge.tess4j.Tesseract; import net.sourceforge.tess4j.Tess 阅读全文
posted @ 2023-07-04 10:36 佛系粥米 阅读(14) 评论(0) 推荐(0) 编辑
摘要:文章中包含的图片要识别文字,过滤掉图片文字的敏感词 图片文字识别: OCR (Optical Character Recognition,光学字符识别):是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程 Tesse 阅读全文
posted @ 2023-07-03 14:48 佛系粥米 阅读(183) 评论(0) 推荐(0) 编辑
摘要:①:创建敏感词表,导入资料中wm_sensitive到leadnews_wemedia库中 ②:拷贝对应的wm_sensitive的mapper到项目中 ③:在文章审核的代码中添加自管理敏感词审核 @Autowired private WmSensitiveMapper wmSensitiveMap 阅读全文
posted @ 2023-07-03 14:22 佛系粥米 阅读(27) 评论(0) 推荐(0) 编辑
摘要:问题:文章审核不能过滤一些敏感词:私人侦探、针孔摄象、信用卡提现、广告代理、刻章办、出售答案、小额贷款… 需要完成的功能:自己维护一套敏感词,在文章审核的时候,需要验证文章是否包含这些敏感词 方案: 1、数据库模糊查询 效率低 2、String.index("")查找 数据库量大的话也是比较慢 3、 阅读全文
posted @ 2023-07-03 11:16 佛系粥米 阅读(24) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示