我想实现以下内容:
- Grails 中的 Web 应用程序将转到 MongoDB 数据库
- 长期运行的批处理在后台填充和更新该数据库
我希望他们两个都重用相同的 Grails 服务和相同的 GORM 域类(使用 Grails 的 mongodb 插件)。
对于 Web 应用程序,一切都应该可以正常工作,包括动态 GORM finder 方法。
但我无法弄清楚如何实现批处理。
一种。如果我将它们实现为 Grails 服务方法,它们的长期运行性质将是一个问题。即使将它们包装在一些异步执行器中也会不必要地使一切复杂化,因为我希望它们每个都是一个单独的 Java 进程,以便可以轻松地单独监视和停止它们。
湾。如果我将它们实现为 src/groovy 脚本并尝试从命令行启动,我无法正确注入 Grails 服务(ApplicationHolder 方法抛出 NPE)或让 GORM finder 方法工作。独立的 GORM 指南都考虑到了 Hibernate,总体而言,这似乎不是正确的途径。
C。我考虑过'batch-launcher' Grails 插件,但它未能安装并且似乎有点被遗弃了。
d。我考虑使用'run-script' Grails 命令从 src/groovy 运行脚本,它似乎实际上可能在开发中工作,但在生产中似乎不是正确的做法。
我不可能是唯一一个遇到这种问题的人 - 那么它通常是如何解决的呢?
人们如何运行与他们的 Grails 应用程序共享代码库和数据库的独立脚本?