我正在使用spring-boo
t和@Scheduled
注释执行一些任务。
如何确定spring-boot中预设任务的默认池大小是多少?
原因:以下类不是并行执行作业,而是一个接一个地执行。也许默认情况下仅配置了一个线程执行程序?
@Service
public class ZipFileTesterAsync {
@Scheduled(fixedDelay = 60000, initialDelay = 500)
public void run() throws Exception {
System.out.println("import 1");
TimeUnit.MINUTES.sleep(1);
System.out.println("import 1 finished");
}
@Scheduled(fixedDelay = 60000, initialDelay = 1000)
public void run2() throws Exception {
System.out.println("import 2");
TimeUnit.MINUTES.sleep(1);
}
}
结果:在第一个作业完成后执行第二个作业。
是的,@Scheduled
默认情况下,所有方法共享一个线程。通过定义@Configuration
如下这样可以覆盖此行为:
@Configuration
public class SchedulingConfigurerConfiguration implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
taskScheduler.setPoolSize(100);
taskScheduler.initialize();
taskRegistrar.setTaskScheduler(taskScheduler);
}
}
本示例确保所有@Scheduled
方法共享大小为100的线程池。
我正在使用和注释来执行一些任务。 原因:下面的类不是并行地执行作业,而是一个接一个地执行作业。可能默认情况下只配置了一个线程执行器? 结果:第二个作业在第一个作业完成后执行。
在Spring Boot应用程序中或一般情况下,tomcat是否配置了默认线程池? 如果配置了线程池,当容器从池中挑选线程时,特定的线程将服务于许多请求?
当容器加载时,spring boot HikariCP提供的默认连接池大小是多少? 当然,我使用下面的属性来设置最大cp大小,但是我想知道如果我们在application.properties文件中没有给出任何数字,默认的cp大小是多少。 如果我给出application.properties最大池大小为100,而我只使用20,这会影响我的应用程序性能吗?
问题内容: 由于以下原因,我知道如何设置堆栈大小: 如何在Node.js中增加最大调用堆栈大小 但是,默认大小是多少?(即,我如何获得的PHP等效项) 问题答案: 简单的答案是,默认堆栈大小为492 KB(32位)和984KB(64位)。 如soyuka所评论,请尝试以下操作: 要么
我正在运行Spring boot 1.4.3应用程序。我正在使用连接到SQL服务器数据库。 当我打印出jdbc模板和驱动程序的默认获取大小时,我得到不同的值。 这就是我从jdbc模板中获取获取大小的方式 几个问题 > 为什么jdbcTemplate提取大小为-1,而文档显示默认值为零。 在上面的例子中,当一个语句执行时,实际的获取大小是多少。我的< code>select语句出现OOM内存错误,我
我使用SpringBoot(V2.3.0.Release)、JPA和Hibernate(带有MySQL数据库)。总的来说,我需要努力提高表演。 是否需要手动配置(同时添加依赖项)连接池?