$client = new Client($conf);
//Pool of requests
$requests = function ($data) use ($client) {
yield function() use ($client, $pixel) {
....
}
}
//Pool of fullfilled
$fullfilled = function ($response, $index) use ($data) {
...
}
//Pool of rejected
$rejected = function ($reason, $index) use ($data) {
...
}
$pool = new Pool($client, $requests($data), [
'concurrency' => 10, 'fulfilled' => $fullfilled, 'rejected' => $rejected
]);
// Initiate the transfers and create a promise
$promise = $pool->promise();
$promise->wait();
を私は適切に「待機」、しかし、私は、プロセスが非同期になりたいを使用していusreありませんよ。 現在、リクエストがハングアップしていますが、待機を省略すると、プールはまったく送信されません。 アイデア?
は私には正常に見えます。 'wait'は同期メソッドなので、すべてのリクエストが解決されるまでスクリプトは"ハングアップ "しています。 –
@AlexBlexしかし、私が待機を省略すると、要求はまったく送信されません。 –
はい、 'wait'は' curl_multi_exec'を起動してすべてのリクエストを並行して実行します。本当に非同期で、httpを送信したり、何かをしたり、レスポンスを処理したりする必要がある場合は、自分でキューを「チェック」する必要があります。例はhttps://github.com/guzzle/guzzle/issues/1127をご覧ください。 –