我有一个Grails应用程序,需要生成大量数据并将其加载到图形数据库中。目前,我将加载方法放在Service中,然后从Bootstrap.groovy的init()调用此服务。
import com.example.BootstrapService
class BootStrap {
def bootstrapService // this is my service
def init = { servletContext ->
bootstrapService.init()
}
def destroy = {
}
}
加载代码需要很长时间(分钟),并且在启动应用程序时我看到内存不足异常。
但是,如果我在控制器中包装bootstrapService.init()方法,然后在程序启动后调用它,则Grails应用程序启动正常并且init()方法运行时没有错误。
因此我相信Grails必须在init()的同时做很多其他的事情,而这正在使边缘的内存需求减少。有没有办法在程序启动后获取方法? (显然我可以增加内存需求,但应用程序是在EC2上运行,所以我希望内存要求尽可能小,以降低成本。)