请问,怎么写才能做到先提交事务,再发送消息(activeMQ)

whyyouhitme_ 2018-11-29 05:35:48
现在想实现一个功能,后台新增商品的同时,把新增商品的信息同步至索引库。
但是如果把发送消息的代码加到新增商品的方法里,因为最后一句是resalut ok(),所以会导致还未提交事务,就先发送了消息,此时发送的消息是空。导致报空指针错误。我把新增方法和发消息的代码装在一个新的方法里。但并未解决问题。
...全文
887 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
卓立苍穹 2020-03-01
  • 打赏
  • 举报
回复
在rocketMq中有事务型信息,你找一下activeMQ有没有事务型消息
wp500 2018-12-05
  • 打赏
  • 举报
回复
item里面的id设置了吗? 是数据生成还是业务设置进去? 如果id有值不管保存没保存数据库,消息过去都是有值的
qq_31459039 2021-09-29
  • 举报
回复
@wp500 很明显 id是mysql插入成功以后自动映射回来的
进击丶Saber 2018-12-05
  • 打赏
  • 举报
回复
这你应该去问你的讲师或者助教
maradona1984 2018-12-04
  • 打赏
  • 举报
回复
@TransactionalEventListener了解下
当然这个跟spring版本相关,低版本也有类似的解决方案

https://www.jianshu.com/p/6f9cc1384cdf
huan_1993 2018-12-03
  • 打赏
  • 举报
回复
可以考虑重写事务管理器,在事务提交方法执行后,再去发送消息。
  • 打赏
  • 举报
回复
处理单一的业务可以通过调用事务comint来提交至数据库,如果应用到项目中可以利用aop切面来统一提交
Silly-77 2018-11-29
  • 打赏
  • 举报
回复
你需要了解下AOP

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧