当前位置:   article > 正文

Springboot服务任务处理多并发线程池构造_springboot整合线程池解决高并发

springboot整合线程池解决高并发

需求:服务优化改造,最初服务设计为单并发处理任务,防止任务过多导致被访问服务资源占用异常。后续优化部分类型任务执行为多并发处理,最大化利用资源。

任务处理流程:executerTask->taskMap.put(taskId,task)->schedule.scheduleAtFixedRate(execute)->getTask(WaitTask)->taskRun

任务触发-任务保存至内存Map(或者redis队列)-轮询服务每隔一段时间获取任务(本地内存Map根据任务状态获取任务,或redis队列获取任务)-获取到的任务和状态map匹配一致后触发执行,状态map获取对应任务为stop或remove则不做任何处理

初始版本任务处理ScheduleJob

  1. package com.demo;
  2. import lombok.extern.slf4j.Slf4j;
  3. import org.apache.commons.lang3.concurrent.BasicThreadFactory;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Service;
  6. import javax.annotation.PostConstruct;
  7. import java.util.concurrent.ScheduledExecutorService;
  8. import java.util.concurrent.ScheduledThreadPoolExecutor;
  9. import java.util.concurrent.TimeUnit;
  10. @Service
  11. @Slf4j
  12. public class EvalScheduleJob {
  13. private static Sc
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/52465
推荐阅读
相关标签
  

闽ICP备14008679号