Predis\Connection\Aggregate\RedisCluster::executeCommand PHP Метод

executeCommand() публичный Метод

public executeCommand ( Predis\Command\CommandInterface $command )
$command Predis\Command\CommandInterface
    public function executeCommand(CommandInterface $command)
    {
        $response = $this->retryCommandOnFailure($command, __FUNCTION__);
        if ($response instanceof ErrorResponseInterface) {
            return $this->onErrorResponse($command, $response);
        }
        return $response;
    }

Usage Example

 /**
  * @group disconnected
  */
 public function testAskSlotsMapToRedisClusterOnMovedResponseByDefault()
 {
     $cmdGET = Command\RawCommand::create('GET', 'node:1001');
     $rspMOVED = new Response\Error('MOVED 1970 127.0.0.1:6380');
     $rspSlotsArray = array(array(0, 8191, array('127.0.0.1', 6379)), array(8192, 16383, array('127.0.0.1', 6380)));
     $connection1 = $this->getMockConnection('tcp://127.0.0.1:6379');
     $connection1->expects($this->once())->method('executeCommand')->with($cmdGET)->will($this->returnValue($rspMOVED));
     $connection2 = $this->getMockConnection('tcp://127.0.0.1:6380');
     $connection2->expects($this->at(0))->method('executeCommand')->with($this->isRedisCommand('CLUSTER', array('SLOTS')))->will($this->returnValue($rspSlotsArray));
     $connection2->expects($this->at(2))->method('executeCommand')->with($cmdGET)->will($this->returnValue('foobar'));
     $factory = $this->getMock('Predis\\Connection\\Factory');
     $factory->expects($this->once())->method('create')->with(array('host' => '127.0.0.1', 'port' => '6380'))->will($this->returnValue($connection2));
     $cluster = new RedisCluster($factory);
     $cluster->add($connection1);
     $this->assertSame('foobar', $cluster->executeCommand($cmdGET));
     $this->assertSame(2, count($cluster));
 }