异步任务的使用
可用于定时发送通知等业务逻辑
新增asyncTask配置类
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import java.util.concurrent.TimeUnit;
/**
* @author 张清赫
* Created by 2020-07-06 15:32
*/
@Configuration
@EnableAsync
public class AsyncTask {
@Async
public void send(Integer params) {
//根据自己的逻辑进行操作,不影响调用方法的继续执行
try {
TimeUnit.SECONDS.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(params+"yesAsync");
}
新增测试类
/**
* @author 张清赫
* Created by 2020-08-24
*/
public class AsyncController(){
@Resource
private AsyncTask asyncTask;
/**
* 测试接口
*/
@GetMapping("/testAsync/{params}")
public void testAsync(@Pathvariable Integer params){
//调用异步任务
asyncTask.send(params);
System.out.println(params+"testAsync1");
//调用非异步方法
notAsyncTask(params);
System.out.println(params+"testAsync2");
//结果为: testAsync1
// yesAsync
// notAsync
// testAsync2
}
//非异步方法
public void notAsyncTask(Integer params){
try {
TimeUnit.SECONDS.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(params+"notAsync");
}
}