同步:就是在发出一个调用时,在没有得到结果之前, 该调用就不返回(实时处理)
异步:调用在发出之后,这个调用就直接返回了,没有返回结果(分时处理)
Springboot集成异步线程调用
①:在自动审核的方法上加上@Async注解(标明要异步调用)
@Override@Async //标明当前方法是一个异步方法public void autoScanWmNews(Integer id) {//代码略}
②:在文章发布成功后调用审核的方法
@Autowiredprivate WmNewsAutoScanService wmNewsAutoScanService;/*** 发布修改文章或保存为草稿* @param dto* @return*/@Overridepublic ResponseResult submitNews(WmNewsDto dto) {//代码略//审核文章wmNewsAutoScanService.autoScanWmNews(wmNews.getId());return ResponseResult.okResult(AppHttpCodeEnum.SUCCESS);}
③:在自媒体引导类中使用@EnableAsync注解开启异步调用
@SpringBootApplication@EnableDiscoveryClient@MapperScan("com.heima.wemedia.mapper")@EnableFeignClients(basePackages = "com.heima.apis")@EnableAsync //开启异步调用public class WemediaApplication {public static void main(String[] args) {SpringApplication.run(WemediaApplication.class,args);}@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}}
