1

我与一家开始使用 Grails 1.3.7(是的,过时的,因为这是供应商支持的唯一版本)和 Groovy 的公司合作。我们希望我们的系统基于 grails 来运行批处理数据库作业并最终实现一个 Web 界面。将批处理数据库作业写入 grails 并让它定期运行的惯用方法是什么?最好没有插件,有没有办法?

或者,我们是否应该只使用 groovy 脚本来运行批处理作业并将它们放入老式的 cron 作业中,如果是这样,我们如何从 WAR 文件或 tomcat 服务器中提取数据库连接(通过 JNDI)?我制作了一些简单的 groovy 脚本,它们使用硬编码的数据库信息连接到我们的 Oracle 数据库,但以后可能不想这样做。

也许有一本很好的初学者书,我也可以让自己熟悉 grails?

谢谢,

汤姆

4

3 回答 3

2

您关于不支持 grails 2x 和不想使用插件的声明令人震惊并引发了危险信号。如果您不能使用设计为使用的特定框架,也许还有其他更适合您的替代方案......话虽如此,我鼓励您使用最新版本的 Grails,因为它带来了以下好处以及更好的支持。

至于运行数据库批处理作业......也许最好的办法就是从数据库中运行它们。Oracle DB 有一个很棒的作业调度程序,效果很好。

如果您确实需要按时运行服务器端代码,那么我会推荐Quartz插件。它非常易于设置和使用,并附带相当好的文档。

于 2013-07-03T02:04:21.937 回答
1

石英插件是要走的路。但是,如果您必须坚持不使用该插件,您仍然可以将石英罐本身添加到项目的类路径中(通过编辑 BuildConfig.groovy)并使用Spring 对与 Quartz 对话的支持

反过来,您可以让 Grails 与 Spring 通信,如Grails 手册中所述。这也适用于 Grails 1.3.x

于 2013-07-04T10:12:38.703 回答
0

这很困难,因为您不想使用插件,因为石英非常易于使用并且可以满足您的需要。

您可以尝试使用此 hack 作为替代方法。创建一个包含批处理作业逻辑的服务,然后创建一个调用该服务的控制器操作。

然后从您的操作系统创建一个 cron 作业,调用该控制器操作。也许使用 wget 或自定义编写的东西。这只是我能想到的一个黑客,而且不好也不安全。

于 2013-07-03T03:55:17.487 回答