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

网站建设开发协议新网域名注册

网站建设开发协议,新网域名注册,天津招标信息网,小说网站推荐1.异步线程池工具类 Configuration public class ThreadExecutorUtils {// 核心线程池大小private int corePoolSize 50;// 最大可创建的线程数private int maxPoolSize 200;// 队列最大长度private int queueCapacity 1000;// 线程池维护线程所允许的空闲时间private int …

1.异步线程池工具类

@Configuration
public class ThreadExecutorUtils
{// 核心线程池大小private int corePoolSize = 50;// 最大可创建的线程数private int maxPoolSize = 200;// 队列最大长度private int queueCapacity = 1000;// 线程池维护线程所允许的空闲时间private int keepAliveSeconds = 300;@Bean(name = "taskExecutor")public Executor getAsyncExecutor() {ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();//核心线程池大小executor.setCorePoolSize(corePoolSize);//最大线程数executor.setMaxPoolSize(maxPoolSize);//队列容量executor.setQueueCapacity(queueCapacity);//活跃时间executor.setKeepAliveSeconds(keepAliveSeconds);//线程名字前缀executor.setThreadNamePrefix("ty-async-");// setRejectedExecutionHandler:当pool已经达到max size的时候,如何处理新任务// CallerRunsPolicy:不在新线程中执行任务,而是由调用者所在的线程来执行executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());executor.initialize();return executor;}}

2.在需要使用异步操作的service实现类注入上面的类

  @Autowiredprivate ThreadExecutorUtils threadPoolTaskExecutor;

3.使用线程池进行异步操作

  Executor executor = threadPoolTaskExecutor.getAsyncExecutor();//addVisitHistory为本类中定义的一个异步执行的业务方法executor.execute(() -> addVisitHistory(userId, spuId));

需要注意的地方:如果项目采用多数据源,在异步线程中,由于多数据源的动态切换通常依赖于线程本地变量(如 ThreadLocal),而异步线程会丢失主线程的上下文(包括 ThreadLocal 中的数据源信息),因此需要额外的处理来确保数据源的一致性。

下面介绍一种示例处理方法:

// 获取当前数据源
String currentDataSource = DataSourceContextHolder.getDataSource();// 创建异步任务
CompletableFuture.runAsync(() -> {// 在异步线程中设置数据源DataSourceContextHolder.setDataSource(currentDataSource);try {// 执行业务逻辑someService.doSomething();} finally {// 清除数据源DataSourceContextHolder.clearDataSource();}
}, executor);

优点

  • 简单直接,易于理解。

  • 适用于少量异步任务的场景。

缺点

  • 需要手动传递和设置数据源,代码侵入性较强。

  • 如果异步任务嵌套较多,容易遗漏数据源的设置

http://www.dtcms.com/wzjs/442305.html

相关文章:

  • 一个做BAT笔试题的网站重庆森林百度云
  • 嘉兴建企业网站seo视频教程我要自学网
  • 做网站生意买螃蟹淘宝推广怎么推
  • wordpress如何缩短URL黄山seo排名优化技术
  • 承德哪里做网站微博推广方式有哪些
  • wordpress主题php详解seo案例分析及解析
  • 简洁的网站建设合同北京建站公司
  • 比较好的免费外贸网站搜索引擎登录入口
  • 有点子外包做网站会不会被盗窃西安seo主管
  • wordpress主题有后台武汉seo关键词排名
  • 邢台做移动网站费用如何快速提升网站关键词排名
  • wordpress怎么实现会员登录西安网络seo公司
  • 网站建设流量是怎么回事注册网站需要多少钱
  • 工会网站升级改造建设方案成都品牌推广
  • 卧龙区建网站在线代理浏览网页
  • 外贸网站建设公司青岛网站优化排名易下拉排名
  • 宁阳房产网优化推广关键词
  • 汕头网站关键词排名南宁百度关键词排名公司
  • 山东网站建设哪家好关键词排名是由什么决定的
  • 网站链接如何做日历提醒系统优化app
  • .net网站开发课程设计手机优化器
  • 做网站具体收费抖音seo软件
  • 怎么用ps做网站图片怎样建立一个网络销售平台
  • 做彩网站有哪些西地那非片吃了多久会硬起来
  • asp网站部署seo怎样才能优化网站
  • 网站接口怎么做深圳网站设计制作
  • 积极加强网站建设天津seo技术教程
  • 邯郸企业网站制作建设东莞网站建设做网站
  • 网站公司哪家好深圳百度网站排名优化
  • 如何自己弄网站百度上看了不健康的内容犯法吗