现在我们有一个存储消息的队列系统(activemq)。我们已经编写了一个单独的 java 应用程序,它将读取队列,然后触发一个 exe 进行一些处理。但是我们想取消这个链接我们的activemq和exe的额外应用程序。所以我想知道是否有任何排队系统包含一个代码,它可以帮助我运行 exe,而无需我编写任何额外的代码。
任何关于哪个排队系统可以让我完成这项工作的输入将不胜感激。
现在我们有一个存储消息的队列系统(activemq)。我们已经编写了一个单独的 java 应用程序,它将读取队列,然后触发一个 exe 进行一些处理。但是我们想取消这个链接我们的activemq和exe的额外应用程序。所以我想知道是否有任何排队系统包含一个代码,它可以帮助我运行 exe,而无需我编写任何额外的代码。
任何关于哪个排队系统可以让我完成这项工作的输入将不胜感激。
这并不是 Message Brokers 的真正工作方式。但是,您可以在自己的应用程序中嵌入代理或创建代理插件来执行某些操作。最后,尽管最好的方法是创建您自己的客户端,该客户端可以实现您的业务逻辑,并让 Message Broker 完成其设计的工作,路由消息流量。
If you want more of a 'push' solution rather than a producer-consumer solution (which sounds to me like you are) you could look into the use of WebSockets. That would be another way of dealing with messages.
As others have said it doesn't look like using a message broker is the solution you want if you don't want to have some additional middleware to provide asynchronous communication.
所以你只需要一些东西来在消息到达时启动一个 EXE?
只是为您提供一些附加信息... IBM Websphere MQ 通过作为服务(在 Windows 实现中)或守护程序(在 UNixish 实现中)运行的 Trigger Monitor 应用程序原生支持触发应用程序。
当消息到达队列时,MQ 软件将生成另一条消息(“触发器”消息并将其发送到“触发器”队列,该队列由触发器管理器应用程序监控。应用程序然后启动所需的应用程序。
因此,您对“启动应用程序的应用程序”的实现一点也不奇怪。IBM 在他们的实现中做到了。我认为您的实现没有任何问题,如果您可以将其更紧密地集成到 activeMQ,那么您就是赢家。
IBM MQ 的触发特性怎么样?
WebSphere MQ 提供了一项功能,当有消息可从队列中检索时,该功能使应用程序或通道能够自动启动。将消息放入定义为已触发的队列中。如果满足一系列条件,则队列管理器将触发消息发送到启动队列。
https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.0.0/com.ibm.mq.dev.doc/q026940_.htm