多平台统一管理软件接口,如何实现多平台统一管理软件接口
144
2024-01-20
1、自从JDK5之后,提供了 ScheduledExecutorService 代替TimerTask来执行定时任务,提供了不错的可靠性。Spring Framework 自带定时任务,提供了cron表达式来实现丰富定时任务配置。
2、(1) Saturn:Saturn是唯品会开源的一个分布式任务调度平台,在Elastic Job的基础上进行了改造。 (2) SIA-TASK :是宜信开源的分布式任务调度平台。
3、XXL-JOB 是一个轻量级中心式定时任务框架。调度中心: 负责管理调度信息,触发调度请求。执行器:负责接收调度请求并执行任务逻辑。将调度行为抽象形成“调度中心”公共平台,而平台自身并不承担业务逻辑。
因为我们常用的是 ThreadPoolExecutor 线程池,所以去这个类中找。上面配置了线程池,并生成了线程池bean,交给了Spring容器管理,使用时注入即可使用。
在SpringBoot中使用异步调用是很简单的,只需要使用@Async注解即可实现方法的异步调用。采用@EnableAsync来开启异步任务支持,另外需要加入@Configuration来把当前类加入springIOC容器中。增加一个service类,用来做积分处理。
任务testA,当前线程:async-thread-pool-1 时间testB:3002 异步方法@Async注解失效情况:(1)在@SpringBootApplication启动类没有添加注解@EnableAsync (2)调用方法和异步方法写在同一个类,需要在不同的类才能有效。
注解 :在使用**@EnableWebMvc**注解的时候也可以开启异步调用,但是在SpringBoot中使用异步调用会使得SpringBoot的AutoConfig一部分功能失效。
在Spring Boot中,我们只需要使用@Async注解就能简单的将原来的同步函数变为异步函数。开启方法:启动类或者配置类上加@EnableAsync注解,然后在方法或者类上加@Async,类上加注解表示类中方法都实现异步调用。
利用 Spring Initializer 创建一个 gradle 项目 spring-boot-async-task,创建时添加相关依赖。 在 Spring Boot 入口类上配置 @EnableAsync 注解开启异步处理。
1、SpringBoot自身没有对异步调用做很大的变动,基本还是使用SpringMVC的@Async 注解 :在使用**@EnableWebMvc**注解的时候也可以开启异步调用,但是在SpringBoot中使用异步调用会使得SpringBoot的AutoConfig一部分功能失效。
2、在Spring Boot中,我们只需要使用@Async注解就能简单的将原来的同步函数变为异步函数。开启方法:启动类或者配置类上加@EnableAsync注解,然后在方法或者类上加@Async,类上加注解表示类中方法都实现异步调用。
3、同一个类里面调用异步方法不生效:原因默认类内的方法调用不会被aop拦截,即调用方和被调用方是在同一个类中,是无法产生切面的,该对象没有被Spring容器管理。即@Async方法不生效。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~