2021-07-09 记录谷粒商城项目中遇到的一个小坑

在搭建renrenfast模块环境时遇到Lombok插件失效问题,导致编译失败。通过更新Lombok版本至1.18.14并在pom.xml中相应调整,成功解决了编译错误,使得项目能正常启动。问题可能是由于IDEA插件版本与renren-fast不匹配引起。

IDEA Lombok插件在某个模块中失效

问题复述

搭建环境过程中,renrenfast模块中lombok失效,导致renren-fast编译失败,无法获取get/set方法

解决

pom.xml中文件注释掉lombok版本,将lombok版本修改为1.18.14,编译通过正常启动

可能原因

可能为IDEA插件版本与renre-fast模块不匹配导致,maven无法正常加载lombok包

### 谷粒商城项目中的常见问题及解决方案 #### 数据库压力与定时任务优化 在谷粒商城项目的开发过程中,Spring 的 `schedule` 定时任务被广泛用于轮询数据库以处理某些业务逻辑。然而,这种方式存在明显的缺点:它会消耗大量系统内存并增加数据库的压力,同时可能导致较大的时间误差[^1]。为了缓解这些问题,可以采用以下策略: - **异步消息队列**:引入 Kafka 或 RabbitMQ 等消息中间件替代传统的定时任务机制。通过发布订阅模式,将原本由定时任务完成的工作交由消费者线程执行,从而减少对数据库的频繁访问。 - **分页查询优化**:如果必须使用定时任务,则可以通过分页的方式逐步扫描表记录,而不是一次性加载全部数据到内存中。 #### 用户登录状态管理 针对用户未登录状态下操作(如加入购物车),通常的做法是利用 Redis 存储临时购物车信息。具体实现方式如下: - 当用户尚未登录时,生成唯一 UUID 并以此作为 key 值存储至 Redis 中;其中字段名为商品 SKU ID,而对应的值则表示该商品的数量或其他属性[^3]。 与此同时,在每次请求进入服务端之前,可通过自定义拦截器验证当前用户的认证情况。一旦确认已登录成功,则需立即将 ThreadLocal 中保存的相关资料转移到正式账户关联的数据结构里去[^2]。 #### 缓存一致性保障措施 对于分布式环境下的缓存更新难题,有几种常见的应对办法可供选择: - 双写策略:即每当修改源数据库的同时也同步刷新相应的缓存副本内容; - 设置合理的过期时间:让旧版本自动失效后再重新读取最新的一份出来填充进去; - 主动删除法:当检测到某条记录发生变化之后立刻清除掉它的高速缓冲区映射关系以便下次获取的时候能够强制走慢路径直至完全重建为止。 ```python import threading class UserContext(threading.local): def __init__(self): self.user_info = None def set_user(user_data): context = UserContext() context.user_info = user_data ``` 上述代码片段展示了如何基于 Python 实现简单的线程局部变量容器类来模拟 Java 下面提到过的 ThreadLocal 功能模块。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值