php上的工人在工作2天后冻结在主管上
大家好强> 我在php(Yii2)上编写workers,以便使用处理rabbitMQ消息 代码示例:php上的工人在工作2天后冻结在主管上,php,rabbitmq,supervisord,worker,php-amqplib,Php,Rabbitmq,Supervisord,Worker,Php Amqplib,大家好 我在php(Yii2)上编写workers,以便使用处理rabbitMQ消息 代码示例: public function start($message) { $this->_getChannel()->queue_declare($this->_getQueueName(), false, true, false, false); $this->stdout(" [*] Worker ". $this->_getQueueName() ."
public function start($message)
{
$this->_getChannel()->queue_declare($this->_getQueueName(), false, true, false, false);
$this->stdout(" [*] Worker ". $this->_getQueueName() ." started\n", Console::BOLD);
$this->_getChannel()->basic_qos(null, 1, null);
$this->_getChannel()->basic_consume(
$this->_getQueueName(), '', false, false, false, false, [$this, 'rabbitCallback']
);
while (count($this->_getChannel()->callbacks)) {
$this->_getChannel()->wait();
}
$this->_getChannel()->close();
}
public function rabbitCallback($message)
{
$this->callbackResponse(json_decode($message->body, true));
$message->delivery_info['channel']->basic_ack($message->delivery_info['delivery_tag']);
}
我使用主管来妖魔化工人
前两天一切正常,然后我在RabbitMQ中看到:
Ready 1000 msg
Unacked 1000 msg
工人根本不看信息,数量增加了
supervisor> status
journal:journal_00 RUNNING pid 103516, uptime 3 days, 20:40:55
journal:journal_01 RUNNING pid 103517, uptime 3 days, 20:40:55
journal:journal_02 RUNNING pid 103514, uptime 3 days, 20:40:55
主管告诉工人工作正常,但信息可以阅读
如果我重新启动supervisor-所有系统都正常工作,则消息开始减少
日志是清晰的=(
你们中有人有同样的问题吗?