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

如何修改wordpress的域名seo优化包括

如何修改wordpress的域名,seo优化包括,北京做机柜空调的网站,上饶商城网站建设文章目录 1、报错2、定位3、修复4、线程池使用的一点思考 1、报错 检索项目日志时,发现一个异常堆栈信息,核心报错: java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.CompletableFuture$AsyncSupply480a10c7…

文章目录

  • 1、报错
  • 2、定位
  • 3、修复
  • 4、线程池使用的一点思考

1、报错

检索项目日志时,发现一个异常堆栈信息,核心报错:

java.util.concurrent.RejectedExecutionException: 
Task java.util.concurrent.CompletableFuture$AsyncSupply@480a10c7 
rejected from java.util.concurrent.ThreadPoolExecutor@51313448
[Running, pool size = 32, active threads = 32, queued tasks = 200, completed tasks = 2487]
// ...

关键字:RejectedExecutionException,从这个异常可以看出,这是因为往线程池提交的任务数量超过了最大线程数 + 阻塞队列长度,然后任务再提交过来,线程池无法再接收新的任务,走了默认的拒绝策略 AbortPoligy:直接抛出RejectedExecutionExption异常阻止系统正常运行

2、定位

查看堆栈信息里的信息,定位到异常代码出自:

@Service
public class InspectionService {private static final Logger log = LoggerFactory.getLogger(InspectionService.class);private final ExecutorService pool = new ThreadPoolExecutor(16,		// 常驻线程数量32,		// 最大线程数量10,		// 线程存活时间,线程多长时间没被使用就关闭TimeUnit.SECONDS,	// 上一个参数的单位new LinkedBlockingQueue<>(200),		// 阻塞队列new ThreadFactoryBuilder().setNameFormat("InspectionService-%d").build(),	// 线程工厂对象new ThreadPoolExecutor.AbortPolicy()		// 拒绝策略);
// ....

再下面CompleteableFuture再提交任务到线程池:

CompletableFuture.supplyAsync(() -> service.queryGroupInfo(), pool)
//....

提交速度 >> 线程池处理速度

3、修复

调大了阻塞队列的长度:

private final ExecutorService pool = new ThreadPoolExecutor(16,32,10,TimeUnit.SECONDS,// groupInfos.size < 500, 这里取length * 1.5new LinkedBlockingQueue<>(700),new ThreadFactoryBuilder().setNameFormat("InspectionService-%d").build(),new ThreadPoolExecutor.AbortPolicy()
);

4、线程池使用的一点思考

  • 线程池自己定义,JDK中静态方法创建的阻塞队列长度为Long.MAX_VALUE,风险很高
参数设置要点示例
corePoolSizeCPU密集型:N+1(N=CPU核数)IO密集型:2N8核服务器:CPU密集型设9,IO密集型设16
maximumPoolSize不超过系统最大线程数(cat /proc/sys/kernel/threads-max)通常设置 coreSize 的 2-4 倍
blockQueue有界队列!无界队列=内存炸弹new LinkedBlockingQueue<>(200)
keepAliveTime线程空闲回收时间(建议30-60秒)TimeUnit.SECONDS + 10
  • 线程池中的线程带名字,不要用默认的pool-xxx,出现问题不好定位是哪儿的任务
  • 可以加必要监控,采集日志分析,到达阈值时告警处理
// 定时采集关键指标(每30秒)
// 单例调度线程池ScheduledExecutorService monitor = Executors.newSingleThreadScheduledExecutor();monitor.scheduleAtFixedRate(() -> {if (pool instanceof ThreadPoolExecutor executor) {int activeCount = executor.getActiveCount();int queueSize = executor.getQueue().size();long completedTaskCount = executor.getCompletedTaskCount();log.info("线程池状态:活跃线程:{} 队列堆积:{} 完成数:{}", activeCount, queueSize, completedTaskCount);if (queueSize > 500) {log.warn("线程池队列堆积过多,队列堆积:{} 完成数:{}", queueSize, completedTaskCount);}}}, 0, 30, TimeUnit.SECONDS);}

在这里插入图片描述

  • 核心业务与非核心业务使用独立线程池,做到资源隔离
http://www.dtcms.com/wzjs/505253.html

相关文章:

  • 山如何搭建响应式网站营销策划师
  • 阳春网站开发微信指数官网
  • 营销网站建设实训总结成都网站建设团队
  • 海口网站建设咨询百度推广点击收费标准
  • 支付单页网站模板app注册推广任务平台
  • 做公司 网站建设价格西安seo公司哪家好
  • 做三级分销网站制作hao123文件在哪里
  • 国内知名网站关键词优化建议
  • 网站改版新闻百度热词指数
  • 凡科做的网站能被收录吗外包公司
  • 广州宝安建网站精准营销推广
  • 工程建设与设计期刊网站如何制作网页
  • 中学网站建设 课设入门seo技术教程
  • 成品网站 售卖广州百度推广开户
  • 昆明设计网站建设分类达人介绍
  • wordpress门户网站模板上海的重大新闻
  • 专业网站优化seo最有效的免费推广方法
  • 建筑行业做网站seo网站推广可以自己搞吗
  • 手机网站建设教程视频教程百度关键词排名十大排名
  • h5网站制作费用百度快照优化
  • 建设网站租用空间衡水seo营销
  • 百度网址安全检测中心咸阳seo
  • 编程软件做网站的百度快速收录方法
  • 网站排名软件网址链网
  • 注册网站请签署意见是写无企业网站网页设计
  • 投稿网站源码百度风云榜游戏排行榜
  • 做一网站要什么时候开始长沙百度快速优化排名
  • 企业电子商务网站建设规划方案企业推广的网站
  • 长沙有什么好玩的地方一日游排名优化公司电话
  • 小江网站建设网络推广方案书模板