我最近將我的laravel應用程序與salesforce API連接起來。 我的測試salesforce帳戶中有大約146位患者。我注意到捲曲是永遠存在的。我不確定是否因爲我的捲髮做錯了事。如何調試curl GET佔用太多時間?
我已經試過
public static function patients(){
try {
$records = Salesforce::query('SELECT Id FROM Patients__c')->records;
if(is_array($records)){
$data = [];
$session_id = Salesforce::getSessionID();
foreach ($records as $i=>$record) {
$id = $record->Id;
$url = 'https://na3.salesforce.com/services/data/v37.0/sobjects/Patients__c/'.$id;
$ch = curl_init();
$timeout = 1;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Authorization: Bearer ".$session_id));
$result = curl_exec($ch);
curl_close($ch);
$result = json_decode($result, true);
$data[$i] = $result;
}
}else{
return $data;
}
} catch (Exception $e) {
Log::error($e->getMessage());
die($e->getMessage() . $e->getTraceAsString());
}
return $data;
}
Wireshark的
我捕捉到的加載時間,它需要大約25秒加載頁面,它僅僅是簡單的數據。
捲曲信息
這是我的foreach循環的第一個對象的結果。
array:26 [▼
"url" => "https://na3.salesforce.com/services/data/v36.0/sobjects/Patients__c/a005000000f0M3YAAU -H "Authorization: Bearer ******""
"content_type" => null
"http_code" => 400
"header_size" => 47
"request_size" => 256
"filetime" => -1
"ssl_verify_result" => 0
"redirect_count" => 0
"total_time" => 0.569035
"namelookup_time" => 0.001719
"connect_time" => 0.085617
"pretransfer_time" => 0.26601
"size_upload" => 0.0
"size_download" => 10.0
"speed_download" => 17.0
"speed_upload" => 0.0
"download_content_length" => -1.0
"upload_content_length" => -1.0
"starttransfer_time" => 0.568458
"redirect_time" => 0.0
"redirect_url" => ""
"primary_ip" => "136.147.43.333"
"certinfo" => []
"primary_port" => 443
"local_ip" => "10.20.100.333"
"local_port" => 59777
]
我應該看看,以提高該怎麼辦?
我打開任何建議現在。
你有什麼時機?捲曲請求?數據的解析?頁面的渲染?或只是完整的頁面加載時間? – NDM
它可能是由於curl操作在foreach循環中。無論如何,你使用批量ID進行單一卷曲調用? –
@NDM:我會用所有這些信息更新我的帖子。 – ihue