Java 如何为每个用户创建一个ThreadPoolExecutor?
我有一个要求,我们必须为每个租户创建Java 如何为每个用户创建一个ThreadPoolExecutor?,java,spring-boot,threadpool,Java,Spring Boot,Threadpool,我有一个要求,我们必须为每个租户创建ThreadPoolExecutor。同时,我使用Spring给定的@Async注释,但这是针对整个应用程序的。因此,如果服务器正忙于一个租户,它将影响另一个用户的租户@Async配置了ThreadPoolExecutor。 但这对于租户中的所有用户来说都很常见 编辑: 我需要每个租户的线程池。 简单地说,我需要为用户组共享线程池。该组中的所有用户都可以使用相同的线程池 现有的javaapi如何做到这一点。请帮忙 如何为租户分离线程池? 例如:租户1分配了大约
ThreadPoolExecutor
。同时,我使用Spring给定的@Async
注释,但这是针对整个应用程序的。因此,如果服务器正忙于一个租户,它将影响另一个用户的租户@Async
配置了ThreadPoolExecutor
。
但这对于租户中的所有用户来说都很常见
编辑:
我需要每个租户的线程池。
简单地说,我需要为用户组共享线程池。该组中的所有用户都可以使用相同的线程池
现有的javaapi如何做到这一点。请帮忙
如何为租户分离线程池?
例如:租户1分配了大约20个线程,因此所有用户(U1、U2…)都可以使用该线程池,并且不会影响其他租户。
与租户2相同,它将被分配大约20个线程……不讨论它是否是一个“好的要求”—简单的:
ThreadPoolTaskExecutor
,并…)将其@SessionScope
d@Bean
添加到应用程序上下文中@Async // !
@GetMapping("/hello")
@ResponseBody
public Future<String> hello() {
return new AsyncResult("Hello");
}
@Async/!
@GetMapping(“/hello”)
@应答器
公共未来你好(){
返回新的异步结果(“Hello”);
}
…当(且仅当)使用新的匿名浏览器/会话/用户时,我会获得MyThreadPoolExecutor日志记录。您希望有多少用户,因为这会很快变糟。如果单个用户a的线程池使用所有可用资源(CPU、RAM、文件系统等)然后,每个其他用户仍然必须等待,直到用户A的任务完成并释放资源,我编辑了问题。我需要它的租户,其中包含用户。我们有多个租户,用户在这里执行繁重的处理。如何做到租户明智?与Tenant1(40个线程)->Tenant1的所有用户都可以从40个线程使用它,与Tenant2(40)相同,不需要创建自定义扩展。只需编写一个创建会话范围Bean的
@Bean
方法。我已经编辑了我的问题。好的……但是如何将线程池共享给用户组呢?。这是一个更复杂的要求,因为spring中没有(预定义的)“租户范围”…!;)(猜猜他们如何命名他们的“自定义范围”!?)
@Async // !
@GetMapping("/hello")
@ResponseBody
public Future<String> hello() {
return new AsyncResult("Hello");
}