例:
$channel->basic_qos(0, 5, false);
$channel->basic_consume('name', '', false, false, false, false, function(AMQPMessage $message) {
echo 'Rec:', $message->getBody(), "\n";
$http = new Http();
$http->get('http://www.baidu.com', function($response) use ($message) {
echo 'Resp:', $response->getBody(), "\n";
$message->ack();
});
});
目前发现在这样使用异步http组件,http一直没有响应(请求都没发送)。
https://wenda.workerman.net/question/6257
见walkor的回复:consume里是一个死循环,一直循环消费队列的数据。因为代码一直运行在这个循环里,workerman永远无法得到控制权,就无法把数据发送出去。
我本意是当设置消费者的prefetch_count后, 如何可以并发处理这些消息,而不是阻塞等待。
basic_consume 也是死循环阻塞的操作,所以无法使用异步http,用curl吧