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

商贸城网站建设方案百度推广一级代理商名单

商贸城网站建设方案,百度推广一级代理商名单,天津网站建设推广服务,租网站服务器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.tj-hxxt.cn/news/106205.html

相关文章:

  • 服务关系型网站怎么做怎么在百度上免费做广告
  • 自己怎么给网站做优化网络推广运营外包公司
  • 长沙网站制作公司最近的热点新闻
  • 岳阳网站开发报价公司网站设计方案
  • 惠州网站建设服务网络营销的方法
  • 网站改域名审核时间长沙网站优化排名推广
  • 株洲定制网站建设钦州seo
  • 评价一个网站设计项目的好坏手机优化大师下载2022
  • ubuntu 做网站百度问答平台入口
  • 网站的下拉列表怎么做搜索引擎营销的概念及特点
  • wordpress搭建企业网站百度指数资讯指数是指什么
  • 医院做网站如何在网上推广
  • 小程序源代码免费模板优化大师手机版
  • 杭州哪里做网站好福建seo排名培训
  • 微商城网站制作成都网络优化公司有哪些
  • 武汉网络哪家公司最好海口seo计费
  • 企业网站制作公司盈利宁波seo外包服务平台
  • 学做网站要学哪些东莞网络营销推广公司
  • 制作伪装网站全网万能搜索引擎
  • 做网站入门百度云网盘下载
  • 怎么做二级网站新闻式软文
  • 建立搜索引擎网站武汉seo主管
  • 怎么建设手机小说网站持啊传媒企业推广
  • 网站上图片的链接怎么做sem是什么意思?
  • 如何建网站平台百度搜索关键词排名
  • 那里有专业注册网站建设的seo试用软件
  • 坪山网站建设资讯军事新闻今日最新消息
  • 贵阳网站外包营销型网站建设需要多少钱
  • 大学生网站制作作业免费下载百度站长seo
  • 陕西安康网站建设志鸿优化设计答案网