当前位置: 首页 > 知识库问答 >
问题:

Spring Boot:如何为每个调度器任务创建一个新的线程池

吉凯捷
2023-03-14

我们有一个web应用程序,其中我们的最终用户将被提供一个选项来动态地调度作业,以便向一组人发送某种类型的报告。即在UI中选择日期、时间和时区。使用Spring Boot调度程序动态调度作业。

目前,我们正在使用一个线程池来异步地将报告发送到一个调度作业的人员组。

@Async(“CustomTaskExecutor”)
public void callToAsyncMethod(User User){
  System.Out.Println(“Hello”+User.GetName()+“,欢迎使用排定程序作业”);
}

@bean(“customTaskExecutor”)
public ThreadPoolTaskExecutor customTaskExecutor(){
 · ThreadPoolTaskExecutor customTaskExecutor=新ThreadPoolTaskExecutor();
 · customTaskExecutor();
 · customTaskExecutor.SetCorePoolSize(5);
 · customTaskExecutor.SetMaxPoolSize(10);
 · customTaskExecutor.

在这里,所有调度程序任务都间接引用相同的线程池来执行异步方法。瓶颈问题出现的地方。

会有帮助...多谢了。

共有1个答案

魏朗
2023-03-14

可以在application.properties中配置池大小。这将允许您同时执行多个计划程序。

spring.task.scheduling.pool.size=10
 类似资料:
  • 问题内容: 我是线程新手。我想创建一些与主线程分开工作的简单函数。但这似乎不起作用。我只想创建一个新线程,并在那里独立于主线程发生的事情做一些事情。这段代码看起来很怪异,但到目前为止,我对线程的了解还很少。你能解释一下这是怎么回事吗? 问题答案: 您正在线程方法中调用该方法。但是只有在线程已经启动时才调用该方法。改为这样做:

  • 我正在创建一个可以监视100-150个设备的监视应用程序...现在要设计一个监视器应用程序,我有两种方法: > < li> 为每个要监控的设备创建一个线程,每个线程将ping(使用ICMP)设备以了解设备是否在线。这些线程将无限期地运行,以便在特定的时间间隔(比如60秒)后了解它们的状态。 创建一个线程池,并为每个设备提交一个任务到一个线程池。任务是简单地 ping 到设备。因此,在当前设计中,任

  • 问题内容: 我有一个简单的线程是这样的: 编辑:开始运行的附加代码 它是主要活动的内部类。但是, 此线程 不是在主 活动 上 运行,而是在 另一个 在 主 活动上 运行的线程 内部 运行 。 无论如何,此示例与此处 完全相同 ,但是由于某种原因,它给了我java.lang.RuntimeException:每个线程只能创建一个Looper。 我没有创建任何其他循环程序,至少在任何地方都没有。 问题

  • 我尝试分析一个gRPC java服务器。我主要看到下面的一组线程池。 null

  • 计划 httpjob 任务的定义 一次性的 job 只运行一次 1. 进入hangfire的后台 点击 左侧栏【计划】 会看到一个按钮名称叫 【新增常规作业】如下图所示: 2. 点击【新增常规作业】会出现一个json编辑器 如下图所示 json 编辑器的参数说明如下 字段名称 备注 JobName 你给这个httpjob起的名称【必填项】 Method 这个httpjob的请求方式 "get" 或