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

自己公司网站设计wordpress 数据库缓存插件

自己公司网站设计,wordpress 数据库缓存插件,wordpress自动生产,怎么把网站做的小程序前言 首先我们来看看在Spring中为什么要使用异步编程,它能解决什么问题? 什么是异步? 首先我们先来看看一个同步的用户注册例子,流程如下: 异步的方式如下: 在用户注册后将成功结果返回,…

前言

首先我们来看看在Spring中为什么要使用异步编程,它能解决什么问题?

什么是异步?

首先我们先来看看一个同步的用户注册例子,流程如下:
在这里插入图片描述

异步的方式如下:
在这里插入图片描述

在用户注册后将成功结果返回,使用异步的方式来赠送优惠券,接下来我们来看一下代码示例。

示例

第一步:新建配置类,开启@Async功能支持
使用@EnableAsync来开启异步任务支持,@EnableAsync注解可以直接放在SpringBoot启动类上,也可以单独放在其他配置类上。我们这里选择使用单独的配置类SyncConfiguration

新建配置类AsyncConfiguration

@Configuration
@EnableAsync
public class AsyncConfiguration {
}

第二步:在方法上标记异步调用
增加一个Component类,用来进行业务处理,同时添加@Async注解,代表该方法为异步处理。

@Component
public class MemberServiceAsync {private static Logger logger = Logger.getLogger(MemberServiceAsync.class);@Asyncpublic void sendCoupons() {try {logger.info("发送优惠券");Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}}
}

第三步:在Controller中进行异步方法调用

@RestController
public class MemberService {private static Logger logger = Logger.getLogger(MemberService.class);@Resourceprivate MemberServiceAsync async;@RequestMapping("insertMember")public String insertMember() {logger.info("会员新增数据");async.sendCoupons();return "注册成功";}
}

访问该接口并查看控制台信息

[INFO ] 2023-03-09 19:52:04,433 method:com.mayikt.service.MemberService.insertMember(MemberService.java:19)
会员新增数据
[INFO ] 2023-03-09 19:52:04,439 method:com.mayikt.service.MemberService.insertMember(MemberService.java:21)
注册成功
[INFO ] 2023-03-09 19:52:04,446 method:com.mayikt.service.MemberServiceAsync.sendCoupons(MemberServiceAsync.java:25)
发送优惠券

通过日志可以看到:主线程不需要等待异步方法执行完成,减少了响应时间,提高了接口性能。

通过上面三步我们就可以在SpringBoot中欢乐的使用异步方法来提高我们接口性能了

线程池

为异步操作提供一个线程池,我们在配置类中加上代码

@Configuration
@EnableAsync
public class AsyncConfiguration {@Bean(name = "asyncPoolTaskExecutor")public ThreadPoolTaskExecutor executor() {ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();//核心线程数taskExecutor.setCorePoolSize(10);//线程池维护线程的最大数量,只有在缓冲队列满了之后才会申请超过核心线程数的线程taskExecutor.setMaxPoolSize(100);//缓存队列taskExecutor.setQueueCapacity(50);//许的空闲时间,当超过了核心线程出之外的线程在空闲时间到达之后会被销毁taskExecutor.setKeepAliveSeconds(200);//异步方法内部线程名称taskExecutor.setThreadNamePrefix("async-");/*** 当线程池的任务缓存队列已满并且线程池中的线程数目达到maximumPoolSize,如果还有任务到来就会采取任务拒绝策略* 通常有以下四种策略:* ThreadPoolExecutor.AbortPolicy:丢弃任务并抛出RejectedExecutionException异常。* ThreadPoolExecutor.DiscardPolicy:也是丢弃任务,但是不抛出异常。* ThreadPoolExecutor.DiscardOldestPolicy:丢弃队列最前面的任务,然后重新尝试执行任务(重复此过程)* ThreadPoolExecutor.CallerRunsPolicy:重试添加当前的任务,自动重复调用 execute() 方法,直到成功*/taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());taskExecutor.initialize();return taskExecutor;}
}

在注解上指定bean的名称:@Async(“asyncPoolTaskExecutor”)就可以了

http://www.yayakq.cn/news/461522/

相关文章:

  • 建站之星7大核心价值网站建设方案说
  • 动易做网站人力外包系统
  • python 做网站合适吗360浏览器网址
  • 网站性能容量的收集与分析怎么做生鲜农产品网站建设
  • 广东省建设信息网网站网站备案幕布照片怎么算合格
  • php做外贸网站好吗xcode 网站开发
  • 做凉菜的网站软文推广教程
  • ps做的网站怎样在dw里打开手机网站一年维护费
  • 网站自助建设源码广州做贷款有什么网站
  • 建设网站跟服务器得关系wordpress连接谷歌地图
  • 网站建设中忽略的字体违法行为企业运营流程
  • 以网站和什么为重点建设平台html5视频播放器 js
  • 天津网站建设方案服务使用阿里云建网站
  • 宁波网站开发rswl中国建设银行蚌埠官方网站
  • 网站的类型和特色建站公司 网络服务
  • 服装公司网站建设wordpress打开后台为404
  • 营销推广网站建设profile wordpress
  • 导购网站模板免费下载中国建设银行官网站招聘频道
  • 设计建设网站公司深圳网络科技有限公司有哪些
  • 一个旅游网站建设需求分析wp做购物网站
  • 自贡普通网站建设费用大学网站建设技术方案
  • 2021半夜好用的网站珠海移动网站定制
  • 电子商务网站建设与管理 项目任务 教材佛山网站建设凤软
  • 网站存在的问题及改进措施普通网站建设费用
  • wordpress商城主题手机版seo免费优化公司推荐
  • 资源网站都有哪些2020给个免费网站好人有好报
  • 淘宝天猫优惠券网站建设百度推广的步骤
  • 服装网站建设策划书预期投入网站公司上海
  • 关于网站建设的博客呼和浩特网站建设哪家好
  • 无锡网站制作一页式网站模板