Springboot解决@Async注解不生效问题

异步保存日志

需要异步保存日志时发现:调用此方法并未异步执行。

	public Map<String,Object>  updateSampleSet(Map<String, Object> params) {
        try {
           	service.update(params);
            service.addLog(params);
        } catch (Exception e) {
            log.error("批量修改问题类别失败:{}",e);
        }
        return DataUtil.success(count);
    }

	@Async
    public void addLog(Map<String, Object> params) {
        dao.addLog(params);
    }

解决方法:

1、SpringBoot 启动类是否加上了@EnableAsync注解
2、将需要被异步调用的方法写到其他类中(两个方法都在同一个类里面,只是一个方法调用另一个异步方法,此时异步不生效)
3、重新获取一个bean,在service接口层创建一个方法,实现层实现这个方法,再调用异步方法

SampleService service = SpringUtil.getBean(SampleService.class);

工具类地址如下:
https://blog.csdn.net/WyattWjt/article/details/109292155?spm=1001.2014.3001.5501

你可能感兴趣的:(Async,spring,boot)