2017-06-25 9 views
0

私のグーズクライアントにいくつか問題があります。私は例1.0のためのタイムアウトを設定し、私はいくつかのルートでスリープ(5)を行います。とにかく例外をスローする必要がある場合は、応答に待ってください。 クライアント:グズルプールがタイムアウトを考慮していません

$requests[] = new Request('GET', $path, [ 
     'timeout' => 1, 
     'connect_timeout' => 1 
    ]); 

$pool = new Pool($this->client, $requests, [ 
     'concurrency' => 5, 
     'fulfilled' => function ($response, $index) use ($response_merger) { 
      $response_merger->fulfilled($response); 
     }, 
     'rejected' => function ($reason, $index) use ($response_merger) { 
      $response_merger->error($reason); 
     } 
    ]); 

と遅延と私のルート:タイムアウトが設定されているので、私はそれを得るべきでないとき

$app->get('/timeout', function() use ($app) { 
    sleep(5); 
    return (new JsonResponse())->setData([ 'error' => 'My timeout exception.' ])->setStatusCode(504); 
}); 

私はいつも、私のタイムアウト例外と504を取得します。

私はset clientでそれをやりましたが、クライアントではなく、特定の要求に対してカスタムタイムアウトが必要なため、解決策ではありません。

$this->client = new Client([ 
     'timeout' => 3.0, 
     'connect_timeout' => 1.0 
    ]); 

答えて

0

あなたはnew Request()の間違った署名を持っていると思います。ドキュメントから:

// Create a PSR-7 request object to send 
$headers = ['X-Foo' => 'Bar']; 
$body = 'Hello!'; 
$request = new Request('HEAD', 'http://httpbin.org/head', $headers, $body); 

3番目のパラメータは、オプションではなくHTTPヘッダーです。

関連する問題