Configuration des délais d'attente Curl en PHP
Un défi courant lors de l'exécution de requêtes curl sur de grands ensembles de données est le temps prolongé nécessaire à la base de données pour générer un réponse. Pour résoudre ce problème, les développeurs tentent souvent de spécifier de longs délais d'attente curl. Cependant, il est crucial de comprendre la bonne approche pour définir les délais d'attente dans curl.
CURLOPT_CONNECTTIMEOUT vs. CURLOPT_TIMEOUT
La documentation officielle PHP (http://www.php. net/manual/en/function.curl-setopt.php) délimite deux délais d'attente distincts options :
Dans l'extrait de code fourni,CURLOPT_TIMEOUT est défini sur 1 000, mais la requête se termine prématurément avant d'atteindre la durée spécifiée. Cela suggère que le délai d'attente n'est pas configuré correctement.
Configuration recommandée :
Sur la base de la documentation, l'approche appropriée est la suivante :
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 400); //timeout in seconds
En définissant CURLOPT_CONNECTTIMEOUT sur 0, nous permettons une attente indéfinie pour l'établissement de la connexion. Simultanément, définir CURLOPT_TIMEOUT sur une valeur spécifique limite le temps d'exécution maximum.
Considération supplémentaire :
Outre la configuration des délais d'attente curl, il est important de prolonger le temps d'exécution du Script PHP lui-même utilisant set_time_limit(). En le définissant sur 0, vous accordez effectivement au script un temps d'exécution illimité :
set_time_limit(0);// to infinity for example
La mise en œuvre de ces ajustements devrait garantir que vos requêtes curl respectent les délais d'attente spécifiés et laisser suffisamment de temps pour la génération de réponses à la base de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!