当前位置: 首页 > news >正文

网站建设预算明细高端大气网站建设

网站建设预算明细,高端大气网站建设,企业网站Wap在线生成,网站上用什么格式的图片问题描述 在一个事务内完成插入操作,通过MQ异步通知其他微服务进行事件处理。 由于是在事务内发送,其他服务消费消息,查询数据时还不存在如何解决呢? 解决方案 通过spring-tx包的TransactionSynchronizationManager事务管理器解…

问题描述

在一个事务内完成插入操作,通过MQ异步通知其他微服务进行事件处理。
由于是在事务内发送,其他服务消费消息,查询数据时还不存在如何解决呢?


解决方案

通过spring-tx包的TransactionSynchronizationManager事务管理器解决。

public abstract class TransactionSynchronizationManager {private static final ThreadLocal<Set<TransactionSynchronization>> synchronizations =new NamedThreadLocal<>("Transaction synchronizations");/*** Return if transaction synchronization is active for the current thread.* Can be called before register to avoid unnecessary instance creation.* @see #registerSynchronization*/		public static boolean isSynchronizationActive() {return (synchronizations.get() != null);}/*** Register a new transaction synchronization for the current thread.* Typically called by resource management code.* <p>Note that synchronizations can implement the* {@link org.springframework.core.Ordered} interface.* They will be executed in an order according to their order value (if any).* @param synchronization the synchronization object to register* @throws IllegalStateException if transaction synchronization is not active* @see org.springframework.core.Ordered*/public static void registerSynchronization(TransactionSynchronization synchronization)throws IllegalStateException {Assert.notNull(synchronization, "TransactionSynchronization must not be null");Set<TransactionSynchronization> synchs = synchronizations.get();if (synchs == null) {throw new IllegalStateException("Transaction synchronization is not active");}synchs.add(synchronization);}}

Rocketmq方法封装,通过TransactionSynchronizationManager.isSynchronizationActive()判断当前方法的调用是否在事务内。
如果是,则注册一个事务同步适配器,在事务提交后发送消息。
否则直接发送。

    /*** 事务内发送 mq时使用,强制到事务结束后发送*/public SendResult sendAfterTrans(String topic, String tag, String key, String body) {final SendResult[] res = new SendResult[1];try {// 是否开启事务判断if (TransactionSynchronizationManager.isSynchronizationActive()) {log.debug("Mysql事务内Mq消息发送  延迟到事务提交后 waiting……");TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {@Overridepublic void afterCommit() {log.debug("Mysql事务内Mq消息发送  发送消息 body:{}", body);res[0] = send(topic, tag, key, body);}});} else {return this.send(topic, tag, key, body);}} catch (Exception e) {e.printStackTrace();}return res[0];}

在这里插入图片描述

http://www.mmbaike.com/news/67548.html

相关文章:

  • 郑州企业网站建设网站关键词推广价格
  • 漯河做网站哪家好如何优化关键词搜索排名
  • 百度搜索到自己的网站百度上免费创建网站
  • html5网站演示seo服务外包公司
  • 网站建设2019在线检测网站安全
  • 网站建设 大公司小公司百度怎么优化网站关键词
  • 有哪些制作网站的公司吗湖南seo优化哪家好
  • 网站做弹窗广告销售外包
  • 网站开发检测用户微信号企业推广平台排行榜
  • 电力建设专家答疑在哪个网站百度知道入口
  • 网站开发培训光山怎么找专业的营销团队
  • 有哪些做调查问卷赚钱的网站最新军事新闻事件今天
  • 用阿里云和大淘客做网站海外seo网站推广
  • 30人的网站建设公司年利润是多少推广策划方案
  • 有什么那个网站亚洲卫星电视网参数表
  • 网站界面类型如何推广一个新的app
  • 付网站首期合同款怎么做分录百度一下你就知道官网百度
  • 中央广播电视台直播太原seo排名公司
  • 网站建设部网网络优化这个行业怎么样
  • qq防红跳转短网址生成安徽网站推广优化
  • 怎么申请一个商城网站.竞价广告
  • com域名查询网店搜索引擎优化的方法
  • 网站开发的学校深圳正规seo
  • 做电池的外贸网站软文营销模板
  • 韶关网站开发网络营销服务有哪些
  • 如何做kindle电子书下载网站外贸营销型网站制作
  • 重庆市建设工程信息网怎么进不去百度seo新算法
  • 建设企业网站需要使用哪些技术专业推广图片
  • 电商的网站开发订单返利功能新媒体运营培训
  • 备案用网站建设方案书灰色行业怎么推广引流