谨用于记录自己在设计时由于考虑不周导致的隐患,阿门。

2021-07-19

新近上线了《智能串接》功能,该功能类似于各种工程项目中的quickStart功能,在该模块设计时留下了两个弊端。

一是部分无效数据被持久化了。

创建考试/每日学练时,用户还未最终确认,但是已经将其所选内容写入mysql数据库,导致部分数据可能是无效数据。

这些可能是临时数据的内容原本可以保存在缓存中,但当时考虑到缓存过期时间和存取数据的便捷程度,仍然选择了将其持久化。

此处尚可待商榷,因为这部分数据由于可以被多次部分修改,若将其置于redis中,则对其进行部分更新时比较棘手。

二是性能无法预估与限制

由于可以选择【任务】这一高级模块,且并未对任务内部包含多少个基础模块进行限制,导致选题时完全无法预估性能压力或者限制用户操作。
目前仅对有超过300条考试结果的【考试】做了并发处理,包括任务中的这种考试。
但是这种两层线程池的方案仅能在用户操作后缓解部分压力,却仍然无法【预】知与【预】先限制用户操作。

这也是我觉得最可能出问题的部分。凡事欲则立,不预则废啊,切记切记。

写博客这方面,转载是不可能转载的,这辈子都不可能转载,直接抄又没有脸去抄,只有自己随便划拉两笔,才能维持得了生活这样子。