摘要:
文章审核:按照固定的频率拉取任务,每秒钟拉取一次,再审核文章。 @Autowired private WmNewsAutoScanService wmNewsAutoScanService; /** * 消费任务【拉取任务】 */ @Scheduled(fixedRate = 1000) @Over 阅读全文
摘要:
文章发布——添加任务——》schedule《——拉取任务——文章审核 当前时间或未来时间都由该服务处理 1、添加任务 @Autowired private IScheduleClient scheduleClient; /** * 添加任务到延时队列中 * * @param id 自媒体文章id * 阅读全文
摘要:
延迟队列微服务: redis:list-执行时间<=当前时间 zset-当前时间<执行时间<当前时间+5分钟 添加任务:【以防任务数量过大在,一旦服务器挂掉,内存所有的数据都消失了,所以要做数据持久化】添加任务到数据库、符合条件的任务添加到redis【list,zset】 取消任务:删除数据库任务信 阅读全文
摘要:
把数据库任务定时存储到redis:当前时间 < 执行时间 <= 预设时间(当前时间+5分钟) 预加载:如果任务量特别大,一次将数据库所有future任务全都加载到redis内存,可能会导致阻塞。 1.清理缓存中的数据 2.查询小于未来5分钟的所有任务 3.新增任务到redis /** * 数据库任务 阅读全文
摘要:
问题描述: 启动两台heima-leadnews-schedule服务,每台服务都会去执行refresh定时任务方法 分布式锁:控制分布式系统有序的去对共享资源进行操作,通过互斥来保证数据的一致性。 分布式锁的解决方案: sexnx (SET if Not eXists) 命令在指定的 key 不存 阅读全文
摘要:
未来数据定时刷新——实现步骤: 定时任务/每分钟————》未来数据的keys————》按照分值查询zset,判断数据是否到期——到期》同步到Redis中的list 1、如何获取zset中所有的key? keys 模糊匹配,future。效率低 SCNA命令:SCAN 命令是一个基于游标的迭代器,SC 阅读全文
摘要:
实现思路: 消费任务————————》从redis中的list中pop数据——————》修改数据库的任务 参数:任务的类型和优先级 pop:取出数据并删除 删除任务&修改任务日志 /** * 按照任务类型和优先级拉取任务 * @param type * @param priority * @retu 阅读全文
摘要:
场景:第三接口网络不通,使用延迟任务进行重试,当达到阈值以后,取消任务。 taskId——》删除任务——》更新日志状态——》删除redis中的数据 1、根据taskid删除任务,修改任务日志状态为 2(取消) 2、删除redis中对应的任务数据,包括list和zset /** * 取消任务 * @p 阅读全文