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

滨州网站建设公司电话wordpress页面侧边栏消失

滨州网站建设公司电话,wordpress页面侧边栏消失,注册一个5000万空壳公司要多少钱,榆林市城乡建设规划局网站参考#xff1a;解剖SpringBoot异步线程池框架_哔哩哔哩_bilibili 1、 为什么要用异步框架#xff0c;它解决什么问题#xff1f; 在SpringBoot的日常开发中#xff0c;一般都是同步调用的。但经常有特殊业务需要做异步来处理#xff0c;例如#xff1a;注册新用户解剖SpringBoot异步线程池框架_哔哩哔哩_bilibili 1、 为什么要用异步框架它解决什么问题 在SpringBoot的日常开发中一般都是同步调用的。但经常有特殊业务需要做异步来处理例如注册新用户送100个积分或下单成功发送push消息等。 1容错性 如果送积分出现异常不能因为送积分而导致用户注册失败。 因为用户注册是主要功能送积分是次要功能即使送积分异常也要提示用户注册成功然后后面再针对积分异常做补偿处理。 2提升性能 例如注册用户花了20毫秒送积分花费50毫秒。如果同步的话总耗时70毫秒用异常的话无需等待积分故耗时20毫秒。 因此使用异步能解决2个问题容错性性能。 2、简单异步调用示例 1开启异步任务 采用EnableAsync来开启异步任务支持另外需要加入Configuration来把当前类加入springIOC容器中。 SyncConfiguration.java文件 Configuration EnableAsync public class SyncConfiguration { } 2在方法上标记异步调用 增加一个service类用来做积分处理 Async添加在方法上代表该方法为异步处理 ScoreService.java文件 public interface ScoreService {public void addScore(); // 增加积分}ScoreServiceImpl.java文件 Service Slf4j public class ScoreServiceImpl implements ScoreService {AsyncOverridepublic void addScore() {// 模拟睡5秒用于赠送积分处理try {Thread.sleep(5000);log.info(--------------------处理积分----------------);} catch (InterruptedException e) {e.printStackTrace();}}} 调用测试 GetMapping(/sync1)public String getAsyncScore(){log.info(--------注册用户----------);scoreService.addScore();return OK;} 连续发送4次请求的日志信息如下 3、为什么要给Async自定义线程池 Async注解在默认情况下用的是SimpleAsyncTaskExecutor线程池因为它不是真正的线程池这个类不重用线程每次调用都会新建一个新的线程。 可以通过如上日志查看每次打印的线程名都是[task-1][task-2], [task-3]……递增的。 我们采用ThreadPoolTaskExecutor其实质是对java.util.concurrent.ThreadPoolExecutor的包装。 4、为Async实现一个自定义线程池 1配置自定义线程池 SyncConfiguration.java文件 Configuration EnableAsync public class SyncConfiguration {Bean(namescorePoolTaskExecutor)public ThreadPoolTaskExecutor getScorePoolTaskExecutor(){ThreadPoolTaskExecutor taskExecutor new ThreadPoolTaskExecutor();// 核心线程数taskExecutor.setCorePoolSize(2);// 线程池维护线程的最大数量只有在缓冲队列满了之后才会申请超过核心线程数的线程taskExecutor.setMaxPoolSize(4);// 缓存队列taskExecutor.setQueueCapacity(2);// 空闲时间当超过了核心线程数之外的线程在空闲时间到达之后会被销毁taskExecutor.setKeepAliveSeconds(10);// 异步方法内部线程名称taskExecutor.setThreadNamePrefix(score-);// 当线程池的任务缓存队列已满并且线程池中的线程数目达到maximumPoolSize如果还有任务到达就会采取的拒绝策略taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());taskExecutor.initialize();return taskExecutor;} }2为Async指定线程池的名称 ScoreService.java文件 public interface ScoreService {public void addScore(); // 增加积分public void addScore2(); // 增加积分测试2 } ScoreServiceImpl.java文件 Service Slf4j public class ScoreServiceImpl implements ScoreService {AsyncOverridepublic void addScore() {// 模拟睡5秒用于赠送积分处理try {Thread.sleep(5000);log.info(--------------------处理积分----------------);} catch (InterruptedException e) {e.printStackTrace();}}Async(scorePoolTaskExecutor)Overridepublic void addScore2() {// 模拟睡5秒用于赠送积分处理try {Thread.sleep(5000);log.info(--------------------处理积分----------------);} catch (InterruptedException e) {e.printStackTrace();}} } 测试类 GetMapping(/sync2)public String getAsyncScore2(){log.info(--------注册用户----------);scoreService.addScore2();return OK;} 连续调用8次的效果 可以发现只有两个线程一直在重用。 6、总结 1异步的好处 容错性性能提升 2自定义线程池的方法 首先配置类中开启异步任务支持同时配置线程池策略 其次异步方法的Async中指定线程池的名称
http://www.w-s-a.com/news/231193/

相关文章:

  • 中卫网站设计做自己的卡盟网站
  • 广州网站推广自助做网站人家直接百度能搜到的
  • 电子商务网站建设目标及利益分析安徽建设厅网站施
  • 制作网站策划书网站建设公司的性质
  • 哪个网站可以做免费宣传简单的网页设计网站
  • 福州专业网站制作公司金湖建设局网站
  • 好的移动端网站模板下载兰州线上广告推广
  • 宁波高端建站深圳品牌营销策划机构
  • 权威网站优化价格建设厅科技中心网站首页
  • 保定模板建站软件腾讯云做淘客网站
  • 单位建设一个网站的费用正规刷手机单做任务网站
  • 北京定制网站价格开网店怎么卖到外国
  • 做网站 后端是谁来做的工程建设指挥部网站
  • wordpress建站 云打印昆明 网站设计
  • 太原网站建设设计网站建设策划书(建设前的市场分析)
  • 哪里有制作网站电商新手入门知识
  • 制作网站的后台文昌网站建设 myvodo
  • 网站 购买移动网站制作
  • 南京网站网站建设学校英山做网站多少钱
  • 珠海网站建设网如何注册公司公众号
  • 手机网站页面制作网站怎么做快照
  • asp网站怎么仿站推广软件下载平台
  • 电子商务网站建设期末试题08答案互联网怎么做
  • 规范门户网站的建设和管理办法微信网站开发公司电话
  • 免费行情网站凡客的官网
  • 做网站运营的女生多吗海淀企业网站建设
  • 网站运行环境配置网站建设个一般需要花费多少钱
  • 广西平台网站建设报价wordpress 免费 企业 主题
  • 四川省建设厅职称查询网站辽宁省住房和城乡建设部网站
  • 公司网站后台登陆网站放到云服务器上怎么做