Exemple #1
0
function create_scribe_client()
{
    try {
        // Set up the socket connections
        $scribe_servers = array('localhost');
        $scribe_ports = array(1463);
        print "creating socket pool\n";
        $sock = new TSocketPool($scribe_servers, $scribe_ports);
        $sock->setDebug(0);
        $sock->setSendTimeout(1000);
        $sock->setRecvTimeout(2500);
        $sock->setNumRetries(1);
        $sock->setRandomize(false);
        $sock->setAlwaysTryLast(true);
        $trans = new TFramedTransport($sock);
        $prot = new TBinaryProtocol($trans);
        // Create the client
        print "creating scribe client\n";
        $scribe_client = new scribeClient($prot);
        // Open the transport (we rely on PHP to close it at script termination)
        print "opening transport\n";
        $trans->open();
    } catch (Exception $x) {
        print "Unable to create global scribe client, received exception: {$x} \n";
        return null;
    }
    return $scribe_client;
}
function scribe_Log_test($messages)
{
    if (!isset($GLOBALS['SCRIBE']['SCRIBE_CLIENT_TEST'])) {
        try {
            // Set up the socket connections
            $scribe_servers = array('localhost');
            $scribe_ports = array(1463);
            print "creating socket pool\n";
            $sock = new TSocketPool($scribe_servers, $scribe_ports);
            $sock->setDebug(0);
            $sock->setSendTimeout(100);
            $sock->setRecvTimeout(250);
            $sock->setNumRetries(1);
            $sock->setRandomize(false);
            $sock->setAlwaysTryLast(true);
            $trans = new TFramedTransport($sock);
            $prot = new TBinaryProtocol($trans);
            // Create the client
            print "creating scribe client\n";
            $scribe_client = new scribeClient($prot);
            // Open the transport (we rely on PHP to close it at script termination)
            print "opening transport\n";
            $trans->open();
            // save it for future calls
            $GLOBALS['SCRIBE']['SCRIBE_CLIENT_TEST'] = $scribe_client;
        } catch (Exception $x) {
            print "Unable to create global scribe client, received exception: {$x} \n";
            return;
        }
    } else {
        print "using existing scribe client\n";
        $scribe_client = $GLOBALS['SCRIBE']['SCRIBE_CLIENT_TEST'];
    }
    try {
        print "sending messages\n";
        $result = $scribe_client->Log($messages);
        if ($result != OK) {
            print "Warning: Log returned {$result} \n";
        }
        return $result;
    } catch (Exception $x) {
        print "Scribe client failed logging " . count($messages) . " messages with exception: {$x} \n";
    }
}
 /**
  * Create connector object
  * @param array $config
  * @return TTransport
  */
 private static function getConnector($config)
 {
     $class = isset($config['class']) ? $config['class'] : '';
     $param = isset($config['param']) ? $config['param'] : array();
     switch ($class) {
         case 'THttpClient':
             if (!isset($param['host'])) {
                 throw new Exception('Bad Thrift transport config');
             }
             $host = $param['host'];
             $port = isset($param['port']) ? $param['port'] : 80;
             $uri = isset($param['uri']) ? $param['uri'] : '';
             $scheme = isset($param['scheme']) ? $param['scheme'] : 'http';
             $timeout = isset($param['timeout']) ? $param['timeout'] : null;
             $connector = new THttpClient($url, $port, $uri, $scheme);
             $connector->setTimeoutSecs($timeout);
             $parameters = sprintf('host = "%s", port = %d, uri = "%s", scheme = "%s", timeout = %d', $host, $port, $uri, $scheme, $timeout);
             break;
         case 'TMemoryBuffer':
             $buf = isset($param['buf']) ? $param['buf'] : '';
             $connector = new TMemoryBuffer($buf);
             $parameters = sprintf('buf = "%s"', $buf);
             break;
         case 'TPhpStream':
             if (!isset($param['mode'])) {
                 throw new Exception('Bad Thrift transport config');
             }
             $mode = $param['mode'];
             $connector = new TPhpStream($mode);
             $parameters = sprintf('mode = %d', $mode);
             break;
         case 'TSocket':
             $host = isset($param['host']) ? $param['host'] : 'localhost';
             $port = isset($param['port']) ? $param['port'] : 9090;
             $persist = isset($param['persist']) ? $param['persist'] : false;
             $send_timeout = isset($param['send_timeout']) ? $param['send_timeout'] : 100;
             $recv_timeout = isset($param['recv_timeout']) ? $param['recv_timeout'] : 750;
             $connector = new TSocket($host, $port, $persist);
             $connector->setSendTimeout($send_timeout);
             $connector->setRecvTimeout($recv_timeout);
             $parameters = sprintf('host = "%s", port = %d, persist = %s, send_timeout = %d, recv_timeout = %d', $host, $port, $persist ? 'true' : 'false', $send_timeout, $recv_timeout);
             break;
         case 'TSocketPool':
             $hosts = isset($param['hosts']) ? $param['hosts'] : array('localhost');
             $ports = isset($param['ports']) ? $param['ports'] : array(9090);
             $persist = isset($param['persist']) ? $param['persist'] : false;
             $send_timeout = isset($param['send_timeout']) ? $param['send_timeout'] : 100;
             $recv_timeout = isset($param['recv_timeout']) ? $param['recv_timeout'] : 750;
             $connector = new TSocketPool($hosts, $ports, $persist);
             $connector->setSendTimeout($send_timeout);
             $connector->setRecvTimeout($recv_timeout);
             $parameters = sprintf('hosts = ("%s"), ports = (%d), persist = %s, send_timeout = %d, recv_timeout = %d', implode('","', $hosts), implode('","', $ports), $persist ? 'true' : 'false', $send_timeout, $recv_timeout);
             break;
         default:
             throw new Exception('Unknown connector: ' . $class);
     }
     sfContext::getInstance()->getLogger()->info(sprintf('{sfThriftPlugin}Create %s connector with parameters: %s', $class, $parameters));
     return $connector;
 }