我必须为 web 服务实现一个 rabbitmq 解决方案。好吧,我决定部署一个简单的队列,有一个生产者和一个客户。我的问题是如何让costumer.php 连续监听producer.php 的请求?我可以将它附加到我的 crontab 中吗?如何定义将在后台工作的工作进程?
如何向客户发送 SOAP 调用?
这
while(count($channel->callbacks)) {
$channel->wait();
}
循环正在等待部分。它将永远运行,根据需要调用 $callback 函数/类。
在本教程中,您可以将 $callback(这里是一个函数)替换为一个包含消费者类实例和要调用的函数的数组,即array($consumer, 'processMessage')
. 该函数将接收消息作为参数。
在本教程中,receive.php 将无限期运行:如果您愿意,您可以将其作为守护进程运行(例如使用 runit)。
如果您希望使用 SOAP 调用,它与 rabbitmq 无关。如果您愿意,您可以同时使用它们,它们可以调用相同的类来完成任务,但是您必须创建另一层代码。