Установка таймаута для соединения Neo4j в php Neo4j-php-client

В прошлом мы использовали следующий код для подключения к neo:

use GraphAware\Neo4j\Client\ClientBuilder;
 $neo4j  = ClientBuilder::create()
            -> addConnection('default', $neo_ip)
            -> setDefaultTimeout($neo_timeout)
            -> build();

setDefaultTimeout устарел, время ожидания curl по умолчанию составляет 5 секунд, что недостаточно для некоторых запросов.

Вместо этого мы можем использовать болт, но setDefaultTimeout в болтовое соединение может также устареть.

use GraphAware\Neo4j\Client\ClientBuilder;
$neo4j  = ClientBuilder::create()
           -> addConnection('bolt',    $neo_bolt_ip)
            -> setDefaultTimeout($neo_timeout)
            -> build();

Новый способ установки таймаута для http-соединения выглядит следующим образом:

use GraphAware\Neo4j\Client\ClientBuilder;
use Http\Client\Curl\Client;
$options = [
        CURLOPT_CONNECTTIMEOUT => 99, // The number of seconds to wait while trying to connect.
        CURLOPT_SSL_VERIFYPEER => false   // Stop cURL from verifying the peer's certificate
    ];
    $httpClient = new Client(null, null, $options);
    $config = \GraphAware\Neo4j\Client\HttpDriver\Configuration::create($httpClient);

    $neo4j  = ClientBuilder::create()
            -> addConnection('default', $neo_ip, $config)
            -> build();

Однако, используя этот новый способ, я получаю Unsupported Media Type исключение.
Если у кого-то есть понимание этого, пожалуйста, поделитесь.

1 ответ

Решение

Сейчас мы можем использовать следующее для установки таймаута:

$neo_timeout = 999;
$neo_ip = "http://user:passwd@127.0.0.1:7474";
use GraphAware\Neo4j\Client\ClientBuilder;
$httpClient = \Http\Adapter\Guzzle6\Client::createWithConfig(['timeout'=>$neo_timeout]);
$config = \GraphAware\Neo4j\Client\HttpDriver\Configuration::create($httpClient);

$neo4j  = ClientBuilder::create()
        -> addConnection('default', $neo_ip, $config)
        -> build();

исправлено использование php-http/curl-client
см.: https://github.com/graphaware/neo4j-php-client/pull/114

Другие вопросы по тегам