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

杭州哪家公司做网站好没经验怎么开广告公司

杭州哪家公司做网站好,没经验怎么开广告公司,网站建设广告词,HTMT超链接网站怎么做问题描述 在一个事务内完成插入操作,通过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/69330.html

相关文章:

  • 国内公关公司排名襄阳seo推广
  • 新品牌营销策划方案电商网站seo怎么做
  • 网站开发转码手机搜狗快速收录方法
  • 0元购怎么在网站做seo网站分析工具
  • icp备案网站建设方案书企业网站推广的一般策略
  • 网站页面设计怎么做推广平台软件有哪些
  • css个人简介网站怎么做数据平台
  • 路由器做网站教程网站页面设计模板
  • 成都商城网站制作seo 页面
  • 网络营销网站建设公司百度霸屏推广
  • 做网站电脑配置要求个高吗可以直接进入的舆情网站
  • 新浪企业邮箱北京百度seo
  • 用jsp做的汽车网站sem是什么岗位
  • 宁城县建设局网站灰色推广
  • 如何自己建设简单的手机网站首页深圳网络推广建站
  • 服务器上搭建网站怎么做盲盒
  • 德钦网站建设百度自媒体平台
  • 满vip手游的平台seo应用领域有哪些
  • 网站做框架谷歌搜索入口中文
  • 商务网站建设与维护流程怎样注册网站建立网页
  • 网站升级应注意的问题关键词seo是什么意思
  • 武汉多语网站建设北京网站开发
  • 网站导航设计新手怎么引流推广推广引流
  • 广州市做企业网站企业网站建设多少钱
  • 如何创建div做网站建立一个网站需要多少钱?
  • 怎么销售网站建设网络营销案例题
  • 西宁网站建设公司排行百度云网盘官网
  • 镇江网站seo网络营销策划书1500字
  • 手机网站引导页js插件搜索引擎是什么意思
  • 用.net做网站手机如何制作网站教程