/**
  * @return AMQPChannelInterface
  **/
 public function basicPublish($exchange, $routingKey, AMQPOutgoingMessage $msg)
 {
     try {
         return $this->channel->basicPublish($exchange, $routingKey, $msg);
     } catch (AMQPServerException $e) {
         return $this->transportReconnect($e)->basicPublish($exchange, $routingKey, $msg);
     }
 }
 /**
  * @param AMQPChannelInterface $channel
  * @param bool $check
  * @param string $key
  * @param string $queueName
  */
 protected function publishMessages(AMQPChannelInterface $channel, $check = true, $label = 'basic')
 {
     for ($i = 1; $i <= self::COUNT_OF_PUBLISH; $i++) {
         $channelInterface = $channel->basicPublish(self::$queueList[$label]['exchange'], self::$queueList[$label]['key'], AMQPOutgoingMessage::create()->setBody("message {$i}")->setTimestamp(Timestamp::makeNow())->setAppId(__CLASS__)->setMessageId($i)->setContentEncoding('utf-8'));
         if ($check) {
             $this->assertInstanceOf('AMQPChannelInterface', $channelInterface);
         }
     }
     if ($check) {
         $this->checkMessageCount($channel, $label);
     }
 }