繁体   English   中英

PHP理论中的Stomp / ActiveMQ-如何模拟Java的MDB?

[英]Stomp / ActiveMQ in PHP theory - how to emulate Java's MDBs?

如何在PHP中创建等效于消息驱动的Bean?

因此,我知道可以通过Stomp协议向ActiveMQ发送()消息,并且在ActiveMQ队列中有可用消息时,可以将()连接到ActiveMQ,然后再读取到readFrame()。

我不了解的是如何解决从队列接收的消息的异步处理问题。

如果您有一个线程一直在队列中等待(并阻塞)直到有线程进入,这是否意味着您一次只能在PHP中处理一条消息?

在Java EE MDB中,您不必担心线程,因为应用服务器会在需要时实例化MDB,但是我不了解如何在PHP中创建一个侦听ActiveMQ队列的高吞吐量应用程序。

有任何想法吗?

目前还不清楚您在哪种意义上是指PHP,Web所用语言中的PHP或Web服务器中使用的运行时中的PHP?

但是,我将创建一个单独的php脚本,并将其与从Web应用程序调用的任何脚本分开启动。 例如,当服务器启动并具有读取STOMP消息的循环时,就像您描述的那样。

然后,您将如何使其与Web应用程序通信? 简单地以某种方式处理消息的内容并将其存储在Web应用程序数据库中。 从本质上讲,这也是JavaEE MDB的工作方式,但是,您已经注意到,有一个容器来处理MDB线程的启动。

关于线程:尽管并不是真正的选择,但您可以在PHP中派生进程。 看这个例子: http : //us.php.net/pcntl_fork

// fork a php script into two processes. Then make each process
if (pcntl_fork() == -1) {
 die('Forking failed');
} 
// This is run twice in different processes, one main process and one child.
run_message_listener_loop(); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM