首页 > 解决方案 > 如何在 QuartzScheduler for Spring Framework 中配置 idleWaitTime 环境变量

问题描述

我目前正在使用使用 spring 框架的第三方应用程序,并试图解决一个问题,即 spring 框架中的某些东西每 30 秒不断重新创建与 AWS 中无服务器 postgres 数据库的连接。我正在使用已配置以下环境变量的 Hikari 数据源:

DATASOURCE_MINIMUMIDLE=0
DATASOURCE_IDLETIMEOUT=30000
DATASOURCE_MAXLIFETIME=60000

我已经确认这些设置正在按预期修改光池。

调查这个问题,我发现 Quartz 每 30 秒左右安排一次查询。我尝试设置 env var 来控制主调度程序循环的空闲超时:

https://github.com/quartz-scheduler/quartz/blob/9f9e400733f51f7cb658e3319fc2c140ab8af938/quartz-core/src/main/java/org/quartz/core/QuartzSchedulerThread.java#L244

我试图设置来控制 idleWaitTime 的 env var 不正确,或者发生了其他事情。

有没有人有使用环境变量控制石英 idleWaitTime 的经验?

我试过 SPRING_QUARTZ_PROPERTIES_ORG_QUARTZ_SCHEDULER_IDLEWAITTIME,但这似乎没有任何效果。

标签: springspring-bootconfigurationquartz-schedulerhikaricp

解决方案


我通过使用以下设置 SPRING_APPLICATION_JSON 环境变量解决了这个问题: "{\"spring\":{\"application\":{\"quartz\":{\"org.quartz.scheduler.idleWaitTime\":\"600000\"}}}}"


推荐阅读