我安装了RabbitMQBundle的Symfony2应用程序。我已根据捆绑文档中的描述设置了消费者和生产者,一切正常。但我的消费者开始使用 ./ app / console rabbitmq:consumer 获取所有可用的CPU时间。基本上,消费者只会等待消息并输出消息。如果我从php-amqplib启动演示消费者,CPU消耗几乎为零。我尝试了不同的Symfony(2.6和2.3),但这并不影响CPU负载。我的服务器配置:
有没有办法减少CPU消耗?感谢
答案 0 :(得分:0)
刚遇到一个非常类似的问题,经过一些调试后意识到我正在使用一种旧方法来实例化与rabbitmq的连接。
此处描述了该方法的新签名:https://github.com/videlalvaro/php-amqplib/blob/master/PhpAmqpLib/Connection/AbstractConnection.php#L136
我发送的内容更像是
$this->connection = new Connection\AMQPConnection(
$server->host,
$server->port,
$server->user,
$server->password,
$server->vhost,
$server->insist,
$server->login_method,
$server->locale,
$server->connection_timeout,
$server->read_write_timeout,
$server->context,
$server->keepalive,
$server->heartbeat
);
根据版本2中某处的一个非常古老的定义。https://github.com/videlalvaro/php-amqplib/blob/v2.0.0/PhpAmqpLib/Connection/AMQPConnection.php#L31
所以你的插件似乎使用了新版本的库,但没有使用新方法来启动连接。