在 grails 应用程序后面使用 Python 或 C

Posted

技术标签:

【中文标题】在 grails 应用程序后面使用 Python 或 C【英文标题】:Using Python or C behind a grails application 【发布时间】:2013-03-20 12:44:09 【问题描述】:

我正在开发一个处理大量图像处理的 grails 应用程序。工作流程是:

用户上传图片 项目已添加到队列中 后端进程将从队列中挑选项目并对其进行分析

我遇到了 OpenCV,它有很多我想使用的功能,但是,它的 java 包装器JavaCV 使用起来很痛苦。除了 Java/Scala 中的几个示例之外,它缺少文档。但是,它有不错的 C 或 Python 文档。

所以我想知道是否可以用 Python 或 C 编写队列工作程序。工作程序将从队列中取出一个项目,对其进行处理,然后将其放回队列中,以便我的 grails 应用程序可以选择它了。

我的问题是:

我的队列应该使用什么? JMS 插件? 为了让 Python 或 C 识别队列中有新项目,我需要做些什么特别的事情吗?这是 ActiveMQ 的优点吗? 您认为我的方法存在重大问题吗? 任何显示此类 JMS 跨平台演示的链接将不胜感激

【问题讨论】:

从2.4.4开始,opencv自带java绑定,看看那些 我们或多或少都在做同样的事情,并且正在使用 RabbitMQ (AMQP) 和 ImageMagick 进行图像处理。它就像一个魅力。一切都在 2 个 Grails 项目中处理:一个用于上传等,另一个包含工作人员。我们已将它们分开,但您也可以将它们组合到 1 个项目中。 Grails RabbitMQ 插件正在为我们做消息传递。 【参考方案1】: 我的队列应该使用什么? JMS 插件?

我猜你可能会在不同的队列实现中遇到同样的问题:你可能找不到用于 JMS 的好的 C 或 Python API。

为什么不直接使用数据库表作为队列?

为了让 Python 或 C 识别队列中有新项目,我需要做些什么特别的事情吗?这是 ActiveMQ 的优点吗?

没什么特别的 - 你只需要知道如何使用队列... :-) ActiveMQ 是 Java 世界中众所周知的 JMS 实现

您认为我的方法存在重大问题吗?

如果您可以在项目中处理两种不同的语言,则不会。这会增加复杂性。如果您决定使用 JMS 解决方案,您还将通过 Queue-Manager 增加复杂性...

希望有帮助!

【讨论】:

【参考方案2】:

使用 grails 2,您可以通过 Jython 使用 Python 代码, 而在 Grails 3+ 中,spring boot 使得使用 Python 比 grails2 更容易。

这里有一些信息: http://docs.spring.io/spring-python/1.2.x/sphinx/html/

【讨论】:

以上是关于在 grails 应用程序后面使用 Python 或 C的主要内容,如果未能解决你的问题,请参考以下文章

如何让 SpringSecurity/Grails 与终止 SSL 的负载均衡器很好地配合使用

切换到 HTTPS 时出现 Grails + Tomcat + Apache 错误

grails中renderrespondredirect的使用

在没有 SPSS 许可证的情况下从 Python、Java(groovy/grails)或 C++ 应用程序访问 SPSS 数据?

连接到 Grails 应用程序数据库

grails 环境变量配置