Ich habe kürzlich meine Laravel-App mit der Salesforce-API verknüpft. Ich habe etwa 146 Patienten in meinem Test Salesforce-Konto. Ich habe bemerkt, dass die Locke ewig dauert. Ich bin mir nicht sicher, ob ich etwas falsch gemacht habe.Wie Debuggen curl GET nehmen zu viel Zeit?
Ich habe
versuchtpublic 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
ich die Ladezeit zu erfassen, ist es etwa 25 Sekunden dauern, um die Seite zu laden, und es ist nur die einfachen Daten.
cURL Info
Dies ist das Ergebnis des ersten Objekts meiner foreach-Schleife.
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
]
Was sollte ich in, um diese zu verbessern?
Ich bin im Moment auf alle Vorschläge öffnen.
Was haben Sie festgelegt? die Curl-Anfrage? das Parsen der Daten? das Rendern der Seite? oder nur die komplette Seitenladezeit? – NDM
Es ist wahrscheinlich aufgrund der Curl-Operation in einer foreach-Schleife. Wie auch immer, du machst einen einzigen Anruf mit Massen-IDs? –
@NDM: Ich werde meine Post mit all diesen Infos aktualisieren. – ihue