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

手机免费网站空间阿里巴巴官网

手机免费网站空间,阿里巴巴官网,html5国内网站,wordpress单本小说SpringBoot异步任务(2)|(线程池使用) 文章目录 SpringBoot异步任务(2)|(线程池使用)[TOC] 前言一、使用场景二、springboot添加异步任务1.配置线程池2.线程池的使用 总结 章节 第一章…

SpringBoot异步任务(2)|(线程池使用)


文章目录

  • SpringBoot异步任务(2)|(线程池使用)
    • @[TOC]
  • 前言
  • 一、使用场景
  • 二、springboot添加异步任务
    • 1.配置线程池
    • 2.线程池的使用
  • 总结

章节
第一章链接: SpringBoot异步任务(1)|(异步任务执行以及回调)

前言

线程池开启异步任务在springboot中的使用

一、使用场景

项目中有一个批量调度的任务,客户上传批量的文章,让后将这些文章去进行任务处理

二、springboot添加异步任务

1.配置线程池

在springboot容器中配置线程池,后续使用直接将bean注入使用即可

@Configuration
@EnableAsync
public class ExecutorEmbPoolConfig {private static final Logger logger = LoggerFactory.getLogger(ExecutorEmbPoolConfig.class);@Value("${embedding.pool.corePoolSize:20}")private int corePoolSize = 20;@Value("${embedding.pool.maxPoolSize:20}")private int maxPoolSize = 20;@Value("${embedding.pool.queueCapacity:100000}")private int queueCapacity = 100000;private String namePrefix = "embedding-service-";@Bean(name = "embeddingServiceExecutor")public ThreadPoolTaskExecutor asyncServiceExecutor() {logger.debug("start embedding embeddingServiceExecutor");ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();//配置核心线程数executor.setCorePoolSize(corePoolSize);//配置最大线程数executor.setMaxPoolSize(maxPoolSize);//配置队列大小executor.setQueueCapacity(queueCapacity);//配置线程池中的线程的名称前缀executor.setThreadNamePrefix(namePrefix);// 允许回收核心线程executor.setAllowCoreThreadTimeOut(true);// CALLER_RUNS: 不在新线程中执行任务,而是有调用者所在的线程来执行executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());//执行初始化executor.initialize();return executor;}
}

2.线程池的使用

@Resource(name = "embeddingServiceExecutor")private ThreadPoolTaskExecutor executor;@Scheduled(cron = "0/30 * * * * ?")public void FileToMilvesJob() {//定义计数器List<DocumentMilvusRecord> documentMilvusRecords = recordService.findByStatus(RecordStatus.WAIT);if (CollectionUtils.isEmpty(documentMilvusRecords)) {return;}List<DocumentMilvusRecord> excuteList;if (documentMilvusRecords.size() > 50) {excuteList = documentMilvusRecords.subList(0, 50);} else {excuteList = documentMilvusRecords;}log.info("本次任务需要执行任务“{}条", excuteList.size());for (DocumentMilvusRecord record : excuteList) {recordService.updateRecordStatus(record);executor.execute(() -> {try {docEmbeddingCreate(record); // 执行业务逻辑} catch (Exception e) {log.error(e.getMessage());}});}}

总结

上面的方式实现了自定义一个线程池,然后执行任务的时候获取线程池并执行任务。

http://www.ds6.com.cn/news/21140.html

相关文章:

  • 免费的外贸网站广州网站优化服务商
  • 上海专业高端网站建设服务今日头条十大新闻最新
  • 企业自建网站营销双11销量数据
  • 找代理注册公司多少钱西安网站排名优化培训
  • 做棋牌网站违法吗网络营销案例成功案例
  • 深圳网站推广哪家好seo sem是什么
  • 哪里可以接网站开发的活本周国内重大新闻十条
  • 学做软件的网站怎样做公司网站推广
  • wordpress调用一个重庆seo主管
  • 自适应网站建设软件百度企业推广
  • wordpress分类子目录武汉seo公司哪家好
  • 线上 网站建设 商务信息软文广告
  • 做网站不小心复制了别人的链接互联网营销师报名费
  • 用java做网站谷歌网页
  • 平顶山 网站建设公司cms系统
  • 政府门户网站建设取得实质进展网站优化排名易下拉排名
  • 无锡市建设局一号通网站农村电商平台
  • 辽宁省建设工程信息网a类业绩西安seo哪家好
  • 做社群最好的网站源码亚马逊关键词
  • javascript和javaseo链接优化建议
  • 校园网站设计参考文献朋友圈推广广告
  • vb.net 网站开发百度热搜关键词排行榜
  • 网站demo怎么做怎么做网络广告
  • 南昌 网站 公司北京seo学校
  • 怎么做网站的内链外链百度推广效果怎样一天费用
  • 怎么用ajax做电商网站5118和百度指数
  • 短网址生成条形码seo推广是什么意思
  • 苹果手机软件开发工具上海建站seo
  • 自己做网站前期困难吗深圳seo云哥
  • 邯郸网站建设联系电话专门做排名的软件