SpringBoot异步执行

SpringBoot异步执行

异步执行简单例子
包括两部分,一个为线程池配置,另一个为异步执行代码本身。
比较简单,直接上代码。

// 线程池配置,可根据具体的需要配置线程池相关配置
@Configuration
public class ThreadPoolConfig {

    /**
     * 配置线程池
     * @return
     */
    @Bean(name = "taskExecutor")
    public ThreadPoolTaskExecutor taskExecutor() {
        ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
        taskExecutor.setCorePoolSize(24);
        taskExecutor.setMaxPoolSize(64);
        taskExecutor.setQueueCapacity(256);
        taskExecutor.setKeepAliveSeconds(200);
        taskExecutor.setThreadNamePrefix("task-");
        taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
        taskExecutor.initialize();
        return taskExecutor;
    }
}

异步执行代码

@Component
@Slf4j
public class SyncService {

    /**
     * @Async中可填写对应所要使用的线程池名称
     * 不同的业务可使用不同配置的线程去执行
     */
    @Async( "taskExecutor")
    public void execute() {
        log.info("执行");
    }
}

main方法

//需添加此注解启动异步功能
@EnableAsync
@SpringBootApplication
public class SyncApplication {

    public static void main(String[] args) {
        SpringApplication.run(SyncApplication.class, args);
    }
    
}

你可能感兴趣的:(springboot)