工作2天后,php上的工作人员冻结了主管

时间:2015-11-16 10:54:33

标签: php rabbitmq worker supervisor php-amqplib

大家好!

我在 php (Yii2)上编写工作人员,以便使用php-amqplib处理rabbitMQ邮件。

代码示例:

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']);
}

我使用主管来妖魔化工人。

前2天一切正常,然后我在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

主管告诉工人工作正常,但可以阅读信息。

如果我重新启动主管 - 一切正常,消息开始减少。

日志清晰=(

你们中有人有同样的问题吗?

0 个答案:

没有答案