php利用curl_*データの同時テスト

4668 ワード

オンラインになる前にテストデータが同時接続されていないため、ネットワークが悪い場合にデータベースにデータが重複して挿入される場合があるため、curl_*を使用して作業中にデータ同時接続の問題が発生しました.関数は、次のように、テストデータの同時実行のテスト例を専門に書きます.
    function test(string $url){

        $arr_ch = array();
        //   cURL     
        $mh = curl_multi_init();
        $index = 0;
        while($index < 20){
            
            $ch = curl_init();
            $arr_ch[$index]  = $ch;
       // url curl_setopt(
$arr_ch[$index], CURLOPT_URL, $url); curl_setopt($arr_ch[$index], CURLOPT_HEADER, 0);
       // sessionid curl_setopt(
$arr_ch[$index] , CURLOPT_COOKIE , "PHPSESSID=vj8qsrag5g6d2dh2t23nv03f11; qlpagecookieid=2dd06ed033d929e8cb4287c622e98275"); curl_multi_add_handle($mh , $arr_ch[$index]); $index++; } // $active = null; // do { $mrc = curl_multi_exec($mh, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); while ($active && $mrc == CURLM_OK) { if (curl_multi_select($mh) != -1) { do { $mrc = curl_multi_exec($mh, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM); } } // foreach($arr_ch as $ch){ curl_multi_remove_handle($mh, $ch); } curl_multi_close($mh); }