예제 #1
0
 /**
  * @covers AMQPy\AbstractConsumer::before
  * @covers AMQPy\AbstractConsumer::consume
  * @covers AMQPy\AbstractConsumer::after
  * @covers AMQPy\AbstractConsumer::always
  */
 public function testBeforeThenConsumeThenAfter()
 {
     $listener = $this->getMock('AMQPy\\AbstractListener', [], [], '', false);
     $delivery = $this->getMock('\\AMQPy\\Client\\Delivery', [], [], '', false);
     $this->object->before($delivery, $listener);
     $this->object->consume('mixed payload goes here', $delivery, $listener);
     $this->object->after('consumer result', $delivery, $listener);
     $this->object->always('consumer result', 'mixed payload goes here', $delivery, $listener);
 }
예제 #2
0
파일: Listener.php 프로젝트: pinepain/amqpy
 public function feed(Delivery $delivery, AbstractConsumer $consumer)
 {
     $consumer->before($delivery, $this);
     $consumer_exception = null;
     $consume_result = null;
     $consume_payload = null;
     try {
         $consume_payload = $this->getSerializers()->get($delivery->getProperties()->getContentType())->parse($delivery->getBody());
         $consume_result = $consumer->consume($consume_payload, $delivery, $this);
     } catch (Exception $e) {
         $consumer_exception = $e;
     }
     if ($consumer_exception) {
         $consumer->failure($consumer_exception, $delivery, $this);
     } else {
         $consumer->after($consume_result, $delivery, $this);
     }
     $consumer->always($consume_result, $consume_payload, $delivery, $this, $consumer_exception);
 }