Тайм-аут соединения GetStream.io на PHP addActivity

Я получаю сообщение об ошибке cURL error 28: Устранение истекло по истечении 35xx миллисекунд, когда были сделаны определенные обновления в моих каналах в GetStream.io (xx = различные значения в миллисекундах). Похоже, что это происходит из-за ошибки на стороне GetStream, которая может сообщать неправильно. Кто-нибудь знает, если вызовы GetStream addActivity продолжаются более 3,5 секунд?

Так как это периодически, единственное, что я могу думать, это то, что может быть ошибка GetStream относительно foreign_id, поскольку это может потенциально копировать существующий foreign_id. Тем не менее, есть ограниченная информация об использовании GetStream foreign_id.

Вот мой упрощенный код для вызова GetStream:

//Add Activity to Feeds

    $ccFeeds = ["Event:1", "Game:2", "Character:5", "Region:6"];

    $client = new Client(env('GETSTREAM_API_KEY'), env('GETSTREAM_API_SECRET'));
    $feed = $client->feed('User', 3);

    $sendData = [
        'actor'      => 'User:3',
        'verb'       => 'update',
        'object'     => 'Image:4',
        'target'     => 'Character:5',
        'foreign_id' => 'Image:4',
        'to'         => $ccFeeds
    ];
    $feed->addActivity($sendData);



ОБНОВЛЕНО: 8 апреля 2016 г. - Подробнее об ошибке
Вот дополнительная информация об ошибке, которую мы получаем:

ConnectException в строке CurlFactory.php 186: ошибка cURL 28: истечение времени ожидания истекло через 3512 миллисекунд (см. http://curl.haxx.se/libcurl/c/libcurl-errors.html)

в строке 186 CurlFactory.php

at CurlFactory::createRejection(object(EasyHandle), массив ('errno' => '28', 'error' => 'Время ожидания истекло через 3512 миллисекунд', 'url' => ' https://api.getstream.io/api/v1.0/feed/User/145636936490547870efa96b68a892ca/?api_key= null, 'http_code' => '0', 'header_size' => '0', 'request_size' => '0', 'filetime' = > '-1', 'ssl_verify_result' => '0', 'redirect_count' => '0', 'total_time' => '3.512752', 'namelookup_time' => '0', 'connect_time' => '0', 'pretransfer_time' => '0', 'size_upload' => '0', 'size_download' => '0', 'speed_download' => '0', 'speed_upload' => '0', 'download_content_length' = > '-1', 'upload_content_length' => '-1', 'starttransfer_time' => '0', 'redirect_time' => '0', 'redirect_url' => '', 'primary_ip' => '', 'certinfo' => array (), 'primary_port' => '0', 'local_ip' => '', 'local_port' => '0')) в строке CurlFactory.php 150

в CurlFactory::finishError(object(CurlHandler), object(EasyHandle), object(CurlFactory)) в строке CurlFactory.php 103

в CurlFactory::finish(объект (CurlHandler), объект (EasyHandle), объект (CurlFactory)) в строке CurlHandler.php 43

в CurlHandler->__invoke(объект (Запрос), массив ("синхронный" => истина, "base_uri" => объект (Uri), "тайм-аут" => '3', 'обработчик' => объект (HandlerStack), '' allow_redirects' => array('max' => '5', 'protocol ' => array('http', 'https'), 'strict' => false, 'referer' => false, 'track_redirects' => false), 'http_errors' => true, 'decode_content' => true, 'verify' => true, 'cookies' => false)) в строке 28 Proxy.php в Proxy::GuzzleHttp\Handler{closure}(объект (Запрос), массив ('synchronous' => true, 'base_uri' => object (Uri), 'timeout' => '3', 'handler' => object(HandlerStack), 'allow_redirects' => array('max' => '5', 'protocol '=> array (' http ',' https '),' strict '=> false,' referer '=> false,' track_redirects '=> false),' http_errors '= > true, 'decode_content' => true, 'verify' => true, 'cookies' => false)) в строке 51 Proxy.php

в Proxy::GuzzleHttp\Handler{closure}(объект (Запрос), массив ('synchronous' => true, 'base_uri' => object (Uri), 'timeout' => '3', 'handler' => object (HandlerStack), 'allow_redirects' => массив ('max' => '5', 'protocol' => array ('http', 'https'), 'strict' => false, 'referer' => false, 'track_redirects' => false), 'http_errors' => true, 'decode_content' => true, 'verify' => true, 'cookies' => false)) в строке PrepareBodyMiddleware.php 72

at PrepareBodyMiddleware -> __ invoke (объект (запрос), массив ("синхронный" => истина, "base_uri" => объект (Uri), "тайм-аут" => '3', 'обработчик' => объект (HandlerStack), '' allow_redirects' => array('max' => '5', 'protocol ' => array('http', 'https'), 'strict' => false, 'referer' => false, 'track_redirects' => false), 'http_errors' => true, 'decode_content' => true, 'verify' => true, 'cookies' => false)) в строке Middleware.php 30

at Middleware:: GuzzleHttp {closure} (объект (Запрос), массив ('synchronous' => true, 'base_uri' => object (Uri), 'timeout' => '3', 'handler' => object (HandlerStack)), 'allow_redirects' => array ('max' => '5', 'protocol' => array ('http', 'https'), 'strict' => false, 'referer' => false, 'track_redirects '=> false),' http_errors '=> true,' decode_content '=> true,' verify '=> true,' cookies '=> false)) в строке RedirectMiddleware.php 68

в RedirectMiddleware->__invoke(объект (Запрос), массив ("синхронный" => истина, "base_uri" => объект (Uri), "тайм-аут" => '3', 'обработчик' => объект (HandlerStack), '' allow_redirects' => array('max' => '5', 'protocol ' => array('http', 'https'), 'strict' => false, 'referer' => false, 'track_redirects' => false), 'http_errors' => true, 'decode_content' => true, 'verify' => true, 'cookies' => false)) в строке Middleware.php 59

at Middleware:: GuzzleHttp {closure} (объект (Запрос), массив ('synchronous' => true, 'base_uri' => object (Uri), 'timeout' => '3', 'handler' => object (HandlerStack)), 'allow_redirects' => array ('max' => '5', 'protocol' => array ('http', 'https'), 'strict' => false, 'referer' => false, 'track_redirects '=> false),' http_errors '=> true,' decode_content '=> true,' verify '=> true,' cookies '=> false)) в строке HandlerStack.php 67

в HandlerStack->__invoke(объект (Запрос), массив ('synchronous' => true, 'base_uri' => object (Uri), 'timeout' => '3', 'handler' => object (HandlerStack), '' allow_redirects' => array('max' => '5', 'protocol ' => array('http', 'https'), 'strict' => false, 'referer' => false, 'track_redirects' => false), 'http_errors' => true, 'decode_content' => true, 'verify' => true, 'cookies' => false)) в строке Client.php 268

при Client-> Transfer (объект (запрос), массив ("синхронный" => true, "base_uri" => объект (Uri), "timeout" => "3", "обработчик" => объект (HandlerStack), '' allow_redirects' => array('max' => '5', 'protocol ' => array('http', 'https'), 'strict' => false, 'referer' => false, 'track_redirects' => false), 'http_errors' => true, 'decode_content' => true, 'verify' => true, 'cookies' => false, '_conditional' => array('User-Agent' => 'GuzzleHttp/6.1.1 curl/7.35.0 PHP/5.5.9-1ubuntu4.13'))) в строке Client.php 98

в Client->sendAsync(объект (запрос), массив ("синхронный" => true)) в строке Client.php 104

в Client->send(объект (запрос)) в строке 99. Feed.php

at Feed->makeHttpRequest('feed/User/145636936490547870efa96b68a892ca/', 'POST', array('actor' => 'User:145636936490547870efa96b68a892ca', 'verb' => 'update', 'object' => '66666666 0 6 6 6 6 6 6 6 0 6 6 6 6 6 6 0 6 6 0) 5 6 6 0 6 0 6 55 6 6 0 55 0 6 0 55 5 6 6 0 55 5 6 6 55 5 6 6 55 55 6 6 0 55 5 6 6 0 55 55 6 6 6 6 55 0 55 5 6 6 6 6 55 5 6 6 6 55 5 6 6 6 6 55 5 6 6 6 55 6 6 6 55 6 6 6 55 6 6 6 55 5 6 6 6 55 5 6 600 ФБ ' 'цель' => 'UserCharacter:14578366478445749c90d674fcbfcf7a', 'foreign_id' => 'изображение:1460097866182455b2966b0d6af6c6ca1460097866', 'до'=> массив ('UserCharacter:14578366478445749c90d674fcbfcf7a xIhp_AjtHawdcoxhOyVkM40-DNK',' Характер:14542764069160f34f6bba72eba8369a 0Z-xTykbo-wxNgPy0NAZts-mDgU', 'Universe:14578366478314e869bd6fdbe67cfb1a FZbzNGVTQhCwa0s7QNu2NbNGZpk', ' Жанр:14504636484684adffda0df53e17a83a 07_msjt2s4dhtwt)

при BaseFeed-> AddActivity(массив ('актер' => 'Пользователь: 145636936490547870efa96b68a892ca', 'глагол' => 'обновление', 'объект' => 'Изображение:1460097866182455b2966b0d6af6c6ca', 'целевой' => 'UserCharacter: 14578366478445749c90d674fcbfcf7a', 'foreign_id' => 'изображение:1460097866182455b2966b0d6af6c6ca1460097866', 'до' => массив ('UserCharacter:14578366478445749c90d674fcbfcf7a', 'Характер:14542764069160f34f6bba72eba8369a', 'Вселенной:14578366478314e869bd6fdbe67cfb1a', 'Жанр:14504636484684adffda0df53e17a83a'))) в линии 146 ImageSMLHandler.php

в ImageHandler->processImages() в строке ImagesApiController.php 55

1 ответ

Я обнаружил, что это на самом деле было вызвано проблемой, когда Laravel непоследовательно использовал \Guzzle\Http\Client вместо GetStream \ Stream \ Client, хотя

use GetStream\Stream\Client;

был определен в верхней части созданного мной FeedClass. Я установил псевдоним в config/app.php на

'Client' => 'GetStream\Stream\Client'

и это, кажется, решило проблему.

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