电商网站建设新闻帝国转wordpress程序
- 作者: 五速梦信息网
- 时间: 2026年03月21日 11:24
当前位置: 首页 > news >正文
电商网站建设新闻,帝国转wordpress程序,h5网站制作接单,wordpress安装问题文章目录前言一#xff0c;异步任务1.1 无返回值异步任务调用1.2 有返回值异步任务调用二、定时任务2.1 背景介绍2.2 todo三、邮箱任务3.1 todo前言 开发 web 应用时#xff0c;多数应用都具备任务调度功能#xff0c;常见的任务包括异步任务、定时任务和邮件任务。我们以数… 文章目录前言一异步任务1.1 无返回值异步任务调用1.2 有返回值异步任务调用二、定时任务2.1 背景介绍2.2 todo三、邮箱任务3.1 todo前言 开发 web 应用时多数应用都具备任务调度功能常见的任务包括异步任务、定时任务和邮件任务。我们以数据库报表为例看看任务调度如何帮助改善系统设计。报表可能是错综复杂的用户可能需要很长时间找到需要的报表数据此时我们可以在这个报表应用中添加异步任务减少用户等待时间从而提高用户体验性除此之外还可以在报表应用中添加定时任务和邮件任务以便用户可以安排在任何他们需要的时间定时生成报表并在 Email 中发送。本文记录如何使用 SpringBoot 开发这些常见的任务。 一异步任务 web 应用开发中大多数情况都是通过同步方式完成数据交互处理但是当处理与第三方系统的交互时容易造成响应迟缓的情况之前大部分都是使用多线程完成此类任务除此之外还可以使用异步调用的方式完美解决这个问题。根据异步处理方式的不同可以将异步任务的调用分为无返回值异步任务调用和有返回值异步任务调用。 1.1 无返回值异步任务调用 在启动类上添加注解 EnableAsync(开启基于注解的异步任务支持)在指定无返回值的业务方法上添加 Asyn注解实现异步请求方法 启动类 EnableAsync SpringBootApplication public class AsyncApplication {public static void main(String[] args) {SpringApplication.run(AsyncApplication.class, args);} }Service 层代码 Service public class AsyncService {Asyncpublic void send(){System.out.println(调用短信验证码方法……);long start System.currentTimeMillis();try {Thread.sleep(4000);} catch (InterruptedException e) {e.printStackTrace();System.out.println(出现异常 e.getMessage());}long end System.currentTimeMillis();System.out.println(短信验证码方法执行时间(end - start) 毫秒);} } Controller 层代码 RestController public class AsyncController {Autowiredprivate AsyncService asyncService;GetMapping(/async)public R testAsync(){long start System.currentTimeMillis();asyncService.send();long end System.currentTimeMillis();System.out.println(调用结束主流程耗时(end-start)毫秒);return R.ok().put(success, 调用结束主流程耗时(end-start)毫秒);} }若没有使用异步处理(注释掉 Async 注解)访问接口返回数据如下 控制台输出内容 若使用异步处理(使用 Async 注解)访问接口返回数据如下 控制台输出内容 当未使用异步处理时访问接口需要等待4s左右才返回数据而使用异步处理后几乎不需要等待时间用户体验更佳了。 需要说明的是无返回值异步方法在被主流程方法调用时主流程方法不会阻塞而是继续向下执行主流程方法内容直接向页面响应结果而调用的异步方法会作为一个子线程单独执行直到异步方法执行完成。 1.2 有返回值异步任务调用 在启动类上添加注解 EnableAsync(开启基于注解的异步任务支持)在指定有返回值的业务方法上添加 ASync注解实现异步请求方法 注意 返回值必须用Future 泛型封装例如: new AsyncResult(count)当想获取装的值时用 Futue 对象调用其 get() 方法即可获得。 业务场景设定假设业务A(耗时3秒)进行数据分析返回一个整数值业务B(耗时5秒)也进行数据分析返回一个整数值且两者没有相互影响计算业务A和业务B的返回整数值相加的结果。 同步方式 先调用业务A 再调用B再将A返回值与B返回值相加最终将结果返回给用户总耗时肯定大于8秒。这种方式相对来说整体耗时更长响应慢降低了用户体验。 异步方式 Async public FutureInteger processA(){System.out.println(开始分析并统计业务A数据……);long start System.currentTimeMillis();try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();System.out.println(出现异常 e.getMessage());}Integer numA 20;long end System.currentTimeMillis();System.out.println(业务A数据统计共耗时(end - start));return new AsyncResultInteger(numA); }Async public FutureInteger processB(){System.out.println(开始分析并统计业务B数据……);long start System.currentTimeMillis();try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();System.out.println(出现异常 e.getMessage());}Integer numB 25;long end System.currentTimeMillis();System.out.println(业务B数据统计共耗时(end - start));return new AsyncResultInteger(numB); }GetMapping(/asyncTask) public R Async() throws Exception {long start System.currentTimeMillis();FutureInteger processA asyncService.processA();FutureInteger processB asyncService.processB();int sum processA.get() processB.get();//等待A B结果相加成功后再向下执行,这里阻塞了long end System.currentTimeMillis();System.out.println(调用结束主流程耗时(end-start)毫秒);return R.ok().put(data,success); }响应结果小于8秒提升了系统响应速度 需要说明的是有返回值异步方法在被主流程方法调用时主流程方法是会短暂阻塞的需要等待并获取异步方法的返回结果而调用的两个异步方法会作为两个子线程并行执行直到异步方法执行完成并返回结果这样主流程会在最后一个异步方法返回结果后跳出阻塞状态。 二、定时任务 2.1 背景介绍 在实际开发中可能会有这样一个需求需要在每天的某个固定时间或者每隔一段时间让程序去执行某一个任务。例如服务器数据定时在晚上零点备份。通常我们可以使用 scheduling Tasks 实现这一定时任务的处理在时间定时任务时需要了解下几种和定时任务相关的注解具体如下: EnableScheduling 用于开启基于注解方式的定时任务支持该注解主要用在项目启动类上。scheduled 配置定时任务的执行规则该注解主要用在定时业务方法上。 scheduled 注解提供多个属性精细化配置定时任务执行规则这些属性及说明如下表: todo 2.2 todo 三、邮箱任务 3.1 todo
- 上一篇: 电商网站建设小强黑户可做网站
- 下一篇: 电商网站建设行业现状计算机网站设计
相关文章
-
电商网站建设小强黑户可做网站
电商网站建设小强黑户可做网站
- 技术栈
- 2026年03月21日
-
电商网站建设小强wordpress表白主题
电商网站建设小强wordpress表白主题
- 技术栈
- 2026年03月21日
-
电商网站建设相关书籍推荐互联网创业项目什么赚钱
电商网站建设相关书籍推荐互联网创业项目什么赚钱
- 技术栈
- 2026年03月21日
-
电商网站建设行业现状计算机网站设计
电商网站建设行业现状计算机网站设计
- 技术栈
- 2026年03月21日
-
电商网站建设与课程设计网络建设的网站
电商网站建设与课程设计网络建设的网站
- 技术栈
- 2026年03月21日
-
电商网站建设与课程设计做招聘网站没有数据
电商网站建设与课程设计做招聘网站没有数据
- 技术栈
- 2026年03月21日






