Gradle任务执行Grails服务

时间:2016-04-04 07:56:07

标签: hibernate grails gradle service

是否可以创建Gradle任务来执行Grails服务方法?

在我的Grails应用程序中,我有一个服务,用于计算要在目标服务器上部署的数据,通常我用来从浏览器调用Controller来生成数据,但我更愿意通过脚本按顺序执行在部署过程中仅包含自动命令。

注意:我不能只是实例化该类,因为它需要运行Grails才能使用Hibernate和域类配置。

1 个答案:

答案 0 :(得分:0)

可能的情况是,使用quartz插件以计划启动服务:

https://grails.org/plugin/quartz

可在此处找到文档:

http://grails-plugins.github.io/grails-quartz/guide/scheduling.html

启动服务的工作将如下所示:

class ImportJob {
    static triggers = {
        simple name: 'importJob', startDelay: 0, repeatInterval: 500 // execute job once in 500 milliseconds
    }

    def ighImportService

    def concurrent = false

    def execute() {
       ighImportService.processNextChunk()
    }
}

在此示例中,将一个ighImporService注入importJob,并且其processNextChunk()方法将每500毫秒加载一次。