4-1 你们项目是如何使用XXL-JOB的
在我的项目中使用了xxl-job来实现定时任务的管理与执行,实现步骤具体有以下5步:
1.配置XXL-JOB Admin:首先,您需要部署XXL-JOB Admin,这是XXL-JOB的后台管理系统,用于配置和管理定时任务。
2.配置XXL-JOB Executor:将XXL-JOB Executor集成到您的Spring项目中,这是用于执行定时任务的组件。
3.创建定时任务Handler:在您的Spring项目中创建定时任务Handler类,该类需要实现XXL-JOB定义的接口,例如IJobHandler接口。
4.注册定时任务Handler:将您创建的定时任务Handler注册到XXL-JOB Admin中,这样Admin就能够管理和调度您的定时任务。
5.启动定时任务Executor:在您的Spring项目中启动XXL-JOB Executor,这样您的定时任务Handler就能够被Executor执行。
4-2 说一说你的评论点赞功能是如何完成(reids版本)
我们的点赞功能中的点赞记录和点赞数量都是存储在Redis中。
首先,当点赞请求发过来,先去Redis中是否存在该用户的点赞记录,如果存在则直接结束
其次,如果不存在就将该用户的点赞记录保存到Redis中,然后,会统计点赞数量,将统计结果保存到Redis中,
然后,我们设置定期任务,定期将Redis中的点赞数量统计通过MQ更新到MySql数据库,这样就完成了点赞功能。
4-3 项目过程有没有难题(业绩)
在我们项目中,评论点赞功能的信息最先是存储在Msql中的,但是存在非常严重的问题,点赞业务包含多次数据库读写操作。
在点赞记录是否存在的判断上、新增或删除点赞记录、统计点赞数量,更新点赞数量等业务链上都存在着与数据库的交互操作。更重要的是,点赞操作波动较大,有可能会在短时间内访问量激增,此时会对数据库造成巨大压力,为了结局这个问题,我们项目改用了Redis进行点赞记录和点赞数量的保存,只需使用XXL-JOB定时任务和MQ监听机制定期将点赞数量更新到数据库中即可,大大减少了数据库的压力。