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

手机网站快速建站透明背景图片在线制作

手机网站快速建站,透明背景图片在线制作,郑州最新情况,公司英文网站多少钱文章目录 一、前言二、案例展示1、初始版本2、代码审核意见和优化建议3、潜在问题和风险4、优化建议5、优化后的代码 三、具体使用 一、前言 有时候我们在项目中做一些长链路的跑批任务时#xff0c;基于Springboot项目的定时任务#xff0c;我们可以指定一个自定义的线程配… 文章目录 一、前言二、案例展示1、初始版本2、代码审核意见和优化建议3、潜在问题和风险4、优化建议5、优化后的代码 三、具体使用 一、前言 有时候我们在项目中做一些长链路的跑批任务时基于Springboot项目的定时任务我们可以指定一个自定义的线程配置类进行单独提供给具体跑批任务使用而不占用整个系统资源。 二、案例展示 我们观察一下第一种方式和优化后的对比在哪里关键点什么 1、初始版本 Configuration EnableAsync public class ScheduledConfig {/*** 创建并配置一个线程池用于快速执行任务。* * return Executor 返回一个配置好的线程池实例可以用于快速执行任务。*/Bean(baseExecutor)public Executor fastExecutor() {// 创建 ThreadPoolTaskExecutor 实例ThreadPoolTaskExecutor executor new ThreadPoolTaskExecutor();// 设置线程名前缀executor.setThreadNamePrefix(xxxx-schedule-baseExecutor);// 设置最大线程池大小executor.setMaxPoolSize(10);// 设置核心线程池大小executor.setCorePoolSize(8);// 设置队列容量executor.setQueueCapacity(5);// 设置拒绝执行处理器采用CallerRunsPolicy策略executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());return executor;}2、代码审核意见和优化建议 3、潜在问题和风险 异常处理 线程池的默认异常处理机制可能不足以处理所有任务抛出的异常。尽管设置了CallerRunsPolicy作为拒绝执行处理器它仅在线程池饱和时工作并不直接处理任务执行中的异常。建议增强异常处理逻辑例如通过自定义的RejectedExecutionHandler实现或者在任务代码中加入更细粒度的异常处理。资源泄露 当应用停止时如果线程池没有被正确关闭可能会导致资源泄露。虽然Spring通常会管理Bean的生命周期但最好确认ThreadPoolTaskExecutor的实例是否加入了适当的销毁逻辑例如调用executor.shutdown()。线程数配置 CorePoolSize被设置为8MaxPoolSize被设置为10这意味着在高负载情况下线程池只能扩展到10个线程。这样的配置可能不足以处理所有高峰时段的请求。你需要根据实际的负载测试结果调整这些参数。队列容量 队列容量被固定为5。这意味着一旦队列满了即使线程池还没有达到最大大小任务也会被拒绝执行。根据实际的负载情况考虑适当增加队列容量或调整线程池的大小。 4、优化建议 性能监控 考虑添加监控机制来跟踪线程池的性能指标如活跃线程数、队列大小和拒绝执行的任务数等。这有助于及时发现和调整配置参数以保证系统的稳定性。可调整性 考虑将线程池的配置参数如corePoolSize, maxPoolSize, queueCapacity等设置为可从外部配置例如应用配置文件的方式获取。这样可以在不修改代码的情况下调整这些参数以适应不同的运行环境。定制化 如果有更复杂的需求比如需要执行周期性任务或需要更细粒度的控制任务执行可以考虑使用Spring提供的其他任务调度组件如 ScheduledThreadPoolExecutor 或者集成 Quartz 等第三方库。 5、优化后的代码 Configuration EnableAsync public class ExecutorConfig {// 名字可以根据项目业务随意起Bean(baseExecutor)public Executor fastExecutor() {ThreadPoolTaskExecutor executor new ThreadPoolTaskExecutor();// 线程名前缀保持不变executor.setThreadNamePrefix(xxxx-schedule-base);// 调整核心线程池大小、最大线程池大小和队列容量以适应可能的更高负载executor.setCorePoolSize(16); // 增加核心线程数executor.setMaxPoolSize(20); // 增加最大线程数executor.setQueueCapacity(100); // 增加队列容量// 使用自定义的RejectedExecutionHandler来处理任务被拒绝的情况executor.setRejectedExecutionHandler(new CustomRejectedExecutionHandler());// 确保在应用停止时线程池能被正确关闭Runtime.getRuntime().addShutdownHook(new Thread(() - {executor.shutdown();}));return executor;}// 自定义的拒绝执行处理器以更好地处理任务被拒绝的情况static class CustomRejectedExecutionHandler implements RejectedExecutionHandler {Overridepublic void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {// 这里可以加入更详细的日志记录或发送警报等逻辑System.out.println(Task r.toString() rejected from executor executor.toString());}} } 三、具体使用 Async(baseExecutor) Scheduled(cron 0 0/5 * * * ?){ // 具体业务 }
http://www.zqtcl.cn/news/418979/

相关文章:

  • php做网站半成品网页设计作业怎么交
  • 郑州网站建设培训学校公众号投票怎么制作
  • 韩国设计交流网站网站设计网页配色
  • 线上设计师网站网络科技公司排名
  • 安徽建设厅网站网址品牌营销ppt
  • 用iis做的网站怎么更改端口南京汤山建设银行网站
  • 威海哪有网站建设十大网页制作工具
  • 上海专业网站建设公司合肥网站建站
  • 怎样将自己做的网站给别人看做平台网站一般有php还是js
  • 做企业网站一般要多少钱WordPress数据库搜索
  • wordpress建立好的网站app的开发流程是什么
  • 工作室网站WordPress文章图片采集插件
  • 青岛网站开发学校wordpress页面样板
  • 校级特色专业建设网站公司网站建设需要些什么要求
  • 嵌入式开发软件有哪些上海谷歌seo
  • 国际学校网站如何建设wordpress登入可见
  • 如何做好网站内链网站开发平台开发
  • 安徽省建设厅网站怎么进不去2022年国内重要新闻
  • 河北建设机械协会网站wordpress怎么做两个语言网站
  • 美容网站模版在线动画手机网站模板
  • jsp做的婚恋网站在谷歌上做英文网站
  • 北京教育学会网站建设昆明seo公司网站
  • 免费域名试用注册网站google搜索关键词热度
  • 温州建设小学网站高中资料网站免费
  • 室内设计网站官网大全电子商务网站后台核心管理
  • 网站建设报价图片欣赏福州网站建设报价
  • 网站推广基本方法是文创产品设计稿
  • 厦门网站制作公司推荐作文网投稿网站
  • 网站开发过什么软件杭州cms建站模板下载
  • 做中东服装有什么网站谁能给我个网址