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

在grails应用程序后面使用Python或C,python,grails,groovy,jms,activemq,Python,Grails,Groovy,Jms,Activemq,我正在开发一个处理大量图像处理的grails应用程序。工作流程是: 用户上传图像 项目已添加到队列中 后端进程将从队列中选取项目并对其执行分析 我遇到了OpenCV,它有很多我想使用的函数,但是,它的java包装器是一个很难使用的东西。除了Java/Scala中的几个示例之外,它缺少文档。但是,它有C或C语言的良好文档 因此,我想知道用Python还是C编写队列工作程序是否合适。工作程序将从队列中提取一个项目,对其进行处理,然后将其放回队列中,以便我的grails应用程序能够提取它 我的问题

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

  • 用户上传图像
  • 项目已添加到队列中
  • 后端进程将从队列中选取项目并对其执行分析
我遇到了OpenCV,它有很多我想使用的函数,但是,它的java包装器是一个很难使用的东西。除了Java/Scala中的几个示例之外,它缺少文档。但是,它有C或C语言的良好文档

因此,我想知道用Python还是C编写队列工作程序是否合适。工作程序将从队列中提取一个项目,对其进行处理,然后将其放回队列中,以便我的grails应用程序能够提取它

我的问题是:

  • 我应该在队列中使用什么?JMS插件
  • 为了让Python或C识别队列中有一个新项目,我需要做什么特殊的事情吗?这是ActiveMQ的优点吗
  • 你认为我的方法存在主要问题吗
  • 任何显示JMS跨平台演示类型的链接都将不胜感激
      • 我应该在队列中使用什么?JMS插件
      我猜您可能会在不同的队列实现中遇到相同的问题:您可能找不到适合JMS的C或Python API

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

      • 为了让Python或C识别队列中有一个新项目,我需要做什么特殊的事情吗?这是ActiveMQ的优点吗
      没什么特别的-您必须知道如何使用队列…:-)ActiveMQ是Java世界中众所周知的JMS实现

      • 你认为我的方法存在主要问题吗
      如果您可以在项目中处理两种不同的语言,则不会。这将增加复杂性。如果您决定使用JMS解决方案,还将通过队列管理器增加复杂性


      希望有帮助

      对于Grails2,您可以通过Jython使用Python代码, 在Grails3+中,SpringBoot使使用Python比grails2容易得多

      以下是一些信息:

      从2.4.4开始,opencv自带了自己的java绑定,看看我们或多或少都在做同样的事情,并使用RabbitMQ(AMQP)和ImageMagick进行图像处理。它就像一个符咒。所有这些都在2个Grails项目中处理:一个用于上传等,另一个包含工人。我们已经把它们分开了,但是你也可以把它们合并到一个项目中。Grails RabbitMQ插件正在为我们做消息传递工作。