【发布时间】:2021-08-18 09:22:15
【问题描述】:
我正在尝试在 Ktor 应用程序中以集群模式配置 Quartz。 我想避免使用属性文件,所以我以编程方式进行调度程序初始化。 这是我到目前为止所取得的成就:
val jobStore = JobStoreTX()
jobStore.setIsClustered(true)
jobStore.dataSource = "datasourceName" //Here is the issue - I want to inject datasource object, not the name
DirectSchedulerFactory.getInstance().createScheduler(
"DS-SCHEDULER",
"AUTO",
SimpleThreadPool(),
jobStore)
val scheduler = DirectSchedulerFactory.getInstance().getScheduler("DS-SCHEDULER")
scheduler.start()
我看到 JobStoreTX 类只允许注入数据源名称,但我想提供一个 DataSource 对象,因为 Ktor 应用程序没有命名服务。 有没有其他方法可以实现这一目标?
【问题讨论】:
-
请解释为什么需要传递
DataSource对象而不是String?您可以使用 HOCON 配置存储数据源字符串ktor.io/docs/configurations.html#read-configuration-in-code,然后在配置JobStoreTX时检索它。
标签: quartz-scheduler ktor