2012-08-27 124 views
2

我对Grails相当陌生,而且我有一个要求,我不知道如何实现。 我需要制作一个流程,使用Grails应用程序进行远程调用,处理接收到的数据并将其写入数据库,以便Grails应用程序可以使用它。Grails后台进程

到目前为止,我认为我需要利用域控制器,但我不确定如何制作一个独立的进程,它在后台不断运行并更新数据库。

可能吗?我可以获得参考或代码示例。 谢谢。

回答

7

你最好的选择是石英通过http://grails.org/plugin/quartzhttp://grails.org/plugin/quartz2插件。我使用了quartz插件,并且您创建的Job类是工件(如控制器,服务等),因此它们支持依赖注入。服务是进行事务性数据库工作的最佳场所,因此将一个或多个服务注入Job类以处理数据库工作。

quartz2插件更新,所以在当前版本的Grails中使用它可能会有更多的运气,但它可能并不具备旧版插件的所有功能。

+0

dang it伯特打败了我一分钟! – dbrin

+2

我们在我们的Grails 1.3.7应用程序中广泛使用了Quartz,并且它对我们来说是完美无瑕的。高度推荐它。我们添加到每项工作的一件事是检查一个配置值以查看该作业是否应该运行。这使我们能够在开发和分期模式下关闭工作,如果我们需要的话。 – erturne

+0

如果这是一个类似cron的任务或者这是一个类似工作任务的任务,那么OP有点模糊。 Quartz非常适合预定的工作,但处理队列对于类似工作的任务要好得多。有没有类似于石英的轻量级作业队列,但是对于其他用例呢? (即比设置像RabbitMQ这样的队列服务器重量更轻) – cdeszaq