basic.consume
을 사용하여 대기열에 가입 한 단순 게시자 및 소비자를 생성했습니다.RabbitMq에서 메시지를 수신하지 않음
내 소비자는 예외없이 작업이 실행될 때 메시지를 확인합니다. 예외가 생길 때마다 메시지를 확인하지 않고 일찍 돌아옵니다. 확인 된 메시지 만 대기열에서 사라 지므로 제대로 작동합니다.
이제 소비자가 실패한 메시지를 다시 가져 오도록하고 싶지만 그 메시지를 다시 받아 볼 수있는 유일한 방법은 소비자를 다시 시작하는 것입니다.
이 유스 케이스에 어떻게 접근해야합니까?
설정 코드
$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');
소비자 코드
$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());
}
생산자 코드
$exchange->publish('message');
어떤 언어를 사용하며 어떤 코드를 제공 할 수 있습니까? – pinepain
@ zaq178miami, 내 편집 된 메시지보기 –
@Bram_Gerritsen, 내 답변 업데이트 참조 – pinepain