在测试“30.Redis消息队列-基于Stream消息队列实现异步秒杀”时遇到问题,日志输出"处理pending-list异常",其中调用了handleVoucherOrder方法,而此方法中获取不到代理对象。
错误信息
...(VoucherOrder)" because "this.proxy" is null
报错的行
proxy.creatVoucherOrder(voucherOrder);
解决的办法是,不要开启多个服务。引发问题的原因是启动了2个服务实例,只用一个服务就可以了。
造成问题的原因是,启动主线程初始化代理对象的服务与获取代理对象的服务并不是同一个。因此当pending-list处理任务启动时,这个服务没有执行过代理对象的初始化,因此无法拿到对象,对象值为空,也就无法通过代理对象调用事务方法。