首页 > 其他分享 >springboot中实现异步方法

springboot中实现异步方法

时间:2024-04-10 23:00:09浏览次数:36  
标签:异步 springboot org private static 线程 executor import 方法

开启配置线程池

package org.springblade.auth.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

import java.util.concurrent.ThreadPoolExecutor;

/**
 * 线程池配置
 */
@EnableAsync
@Configuration
public class ThreadPoolTaskConfig {

	/**
	 * 核心线程数(默认线程数)
	 */
	private static final int CORE_POOL_SIZE = 5;
	/**
	 * 最大线程数
	 */
	private static final int MAX_POOL_SIZE = 10;
	/**
	 * 允许线程空闲时间(单位:默认为秒)
	 */
	private static final int KEEP_ALIVE_TIME = 5;
	/**
	 * 缓冲队列大小
	 */
	private static final int QUEUE_CAPACITY = 50;
	/**
	 * 线程池名前缀
	 */
	private static final String THREAD_NAME_PREFIX = "Async-Service-";

	/**
	 * bean的名称,默认为首字母小写的方法名
	 * 然后在用到的异步方法的地方,显式引用改线程池。
	 * 例如@Async("taskExecutor")
	 */
	@Bean("taskExecutor")
	public ThreadPoolTaskExecutor taskExecutor() {
		ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
		executor.setCorePoolSize(CORE_POOL_SIZE);
		executor.setMaxPoolSize(MAX_POOL_SIZE);
		executor.setQueueCapacity(QUEUE_CAPACITY);
		executor.setKeepAliveSeconds(KEEP_ALIVE_TIME);
		executor.setThreadNamePrefix(THREAD_NAME_PREFIX);

		// 线程池对拒绝任务的处理策略
		// CallerRunsPolicy:由调用线程(提交任务的线程)处理该任务
		executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
		// 初始化
		executor.initialize();
		return executor;
	}

}

  

       
方法上加上@Async("taskExecutor")注解,在其他业务类中调用就可以实现异步调用

        @Override
	@Async("taskExecutor")
	public Boolean updateDoctorOrAssistantRedundanceInfo(BizUpdateDTO dto) {

		
		
       }

  

标签:异步,springboot,org,private,static,线程,executor,import,方法
From: https://www.cnblogs.com/xianz666/p/18127702

相关文章

  • 多种数据库存储过程数据插入方法总结
    多种数据库存储过程数据插入方法总结ORACLE-DM-OSCARCREATETABLEzhaobsh1m(IDvarchar(1024),NAME1varchar(1024),NAME2varchar2(1024),NAME3varchar2(1024));selectsegment_name--表名,bytes/1024/1024/1024as空间大小GBfromuser_segmentswheresegment_type......
  • javaweb项目没有main方法?
    在写javaweb项目中忽然发现没有main方法的,没有入口怎么跑?其实项目是有main方法的,不需要我们编写代码,main方法在tomcat容器中。tomcat是运行在虚拟机之上的。Junit是有主函数的,就在junit框架源码里面。从main开始执行,反射运行各个testcase,然后结束。在一个基于JavaW......
  • rhel7和centos7以上版本忘记root密码处理方法
    目录1.开机进入grub菜单2.找到linux16一行进行配置3.挂载文件系统并重置密码1.开机进入grub菜单进入grub菜单,选择默认第一个启动项,按e进行编辑2.找到linux16一行进行配置找到linux16一行,摁ctrl+e跳转到行尾,输入\rd.break,再按ctrl+x进入急救模式3.挂载文件系统并重......
  • SpringBoot中application.yml引入多个YML文件
    系列文章目录文章目录系列文章目录前言前言前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。首先,你要了解SpringBoot配置文件加载顺序,加载位置(代码内,Nacos等),当然这......
  • JAVASE_java中的String类方法
    前言 java.lang.String类提供了许多用于在Java中操作字符串的内置方法。借助这些方法,我们可以对String对象进行查找、拆分、比较、转换字符串等操作。一、String类的构造和对象的比较1.1字符串构造构造方式1://使用常量串构造Strings1="helloworld";System.......
  • django simpleui 的list_display添加自定义列、显示图片 及alert弹窗的设置方法
    参考djangosimpleui的list_display添加自定义列、显示图片及alert弹窗的设置方法-CSDN博客环境:python:3.8.xDjango:3.2.xDjango-simpleui:2021.x先定义下模型#models.pyclassDog(models.Model):name=models.CharField(max_length=15,verbose_name='小狗名字')......
  • 网上图书商城的设计与实现|SpringBoot+ Mysql+Java+ B/S结构(可运行源码+数据库+LW)图
    本项目包含可运行源码+数据库+LW,文末可获取本项目的所有资料。推荐阅读300套最新项目持续更新中.....最新ssm+java项目文档+视频演示+可运行源码分享最新jsp+java项目文档+视频演示+可运行源码分享最新SpringBoot项目文档+视频演示+可运行源码分享2024年56套包含java,ssm......
  • 游戏分享网站的设计与实现|SpringBoot+ Mysql+Java+ B/S结构(可运行源码+数据库+LW)手
    本项目包含可运行源码+数据库+LW,文末可获取本项目的所有资料。推荐阅读300套最新项目持续更新中.....最新ssm+java项目文档+视频演示+可运行源码分享最新jsp+java项目文档+视频演示+可运行源码分享最新SpringBoot项目文档+视频演示+可运行源码分享2024年56套包含java,ssm......
  • Java程序中两种配置文件(xml和properties)的加载读取方法
    ​ Java程序中,经常需要从配置文件中加载并读取设置,以支持不同的配置环境和参数。最常用的配置文件格式是XML和properties。两种方法都非常基础,适合于简单的配置文件读取需求。对于更复杂的需求,可能需要更高级的解析技术或第三方库。参考文档:Java程序中两种配置文件(xml和prope......
  • 汽车车辆租赁系统的设计与实现|SpringBoot+ Mysql+Java+ B/S结构(可运行源码+数据库+L
    本项目包含可运行源码+数据库+LW,文末可获取本项目的所有资料。推荐阅读300套最新项目持续更新中.....最新ssm+java项目文档+视频演示+可运行源码分享最新jsp+java项目文档+视频演示+可运行源码分享最新SpringBoot项目文档+视频演示+可运行源码分享2024年56套包含java,ssm......