Consumir não reconhece mensagens do RabbitMq

Eu criei um editor simples e um consumidor que se inscreve na fila usandobasic.consume.

Meu consumidor reconhece as mensagens quando o trabalho é executado sem exceção. Sempre que me deparo com uma exceção, não entendo a mensagem e volto cedo. Apenas as mensagens reconhecidas desaparecem da fila, então isso está funcionando corretamente.
Agora, quero que o consumidor recupere as mensagens com falha novamente, mas a única maneira de reconsiderar essas mensagens é reiniciando o consumidor.

Como preciso abordar esse caso de uso?

Código de configuração

$channel = new AMQPChannel($connection);

$exchange = new AMQPExchange($channel);

$exchange->setName('my-exchange');
$exchange->setType('fanout');
$exchange->declare();

$queue = new AMQPQueue($channel);
$queue->setName('my-queue');
$queue->declare();
$queue->bind('my-exchange');

Código do consumidor

$queue->consume(array($this, 'callback'));

public function callback(AMQPEnvelope $msg)
{
    try {
        //Do some business logic
    } catch (Exception $ex) {
        //Log exception
        return;
    }
    return $queue->ack($msg->getDeliveryTag());
}

Código do produtor

$exchange->publish('message');

questionAnswers(2)

yourAnswerToTheQuestion