我与一家开始使用Grails 1.3.7(是的,过时的,因为这是供应商支持的唯一版本)和Groovy的公司合作。我们希望将我们的系统建立在grails上以运行批处理数据库作业并最终实现Web界面。将批处理数据库作业写入grails并使其定期运行的惯用方法是什么?最好没有插件,有办法吗?
或者,我们是否应该只使用groovy脚本来运行批处理作业并将它们放入旧式的cron作业中,如果是这样,我们如何从WAR文件或tomcat服务器(通过JNDI)中提取数据库连接?我制作了一些简单的groovy脚本,这些脚本使用硬编码的数据库信息连接到我们的Oracle数据库,但可能不希望这样做。
也许有一本好的初学者书籍,我也可以熟悉grails?
谢谢,
汤姆
答案 0 :(得分:2)
您关于不支持grails 2x并且不想使用插件的陈述令人担忧并引发了危险信号。如果您不能使用特定的框架,因为它可能会被使用,或许有其他替代方案对您更好......尽管如此,我鼓励您使用最新版本的Grails,因为它带来了好处以及更好的支持。
就运行数据库批处理作业而言..也许最好的办法就是从数据库中运行它们。 Oracle DB有一个很棒的作业调度程序。
如果您确实需要按计划运行服务器端代码,那么我建议 Quartz 插件。它易于设置和使用,并附带相当好的文档。
答案 1 :(得分:1)
石英插件是要走的路。但是,如果您必须坚持不使用该插件,您仍然可以在项目的类路径中添加石英罐(通过编辑BuildConfig.groovy)并使用Spring's support for talking to Quartz。
反过来,您可以让Grails与Spring通信,described in the Grails manual。这也适用于Grails 1.3.x
答案 2 :(得分:0)
很难,因为你不想使用插件,因为石英很容易使用,并且符合你的需要。
你可以尝试这种黑客作为替代方案。创建一个包含批处理作业逻辑的服务,然后创建一个调用该服务的控制器操作。
然后从您的操作系统创建一个cron作业,调用该控制器操作。也许使用wget或自定义编写的东西。这只是我能想到的一个黑客,而且不好又安全。