2016-12-16 3 views
0

Je rencontre un problème avec le timeout/temps d'exécution en utilisant PHP. Ce que je suis en train de faire est le test si une base de données Filemaker est disponible ou non en utilisant le script ci-dessous:Impossible de diminuer le temps d'exécution/d'expiration de PHP

$connected = $fm->listLayouts(); 
if(FileMaker::isError($connected)) 
{ 
die('Error - ' . $connected->getCode() . ' ' . $connected->getMessage()); 
} 

Le problème est qu'il faut le script 60sec montrer ci-dessous erreur:

Error - 7 Communication Error: (7) Failed to connect to 103.22.180.61 port 80: Connection timed out

Ceci est trop long. Y at-il un moyen de script en PHP pour essayer de se connecter à la base de données et si cela ne fonctionne pas dans 10sec, juste arrêter d'essayer de se connecter et montrer l'erreur (ou faire autre chose) tout de suite? J'ai essayé ...

set_time_limit(10); 
if(FileMaker::isError($connected)) 
{ 
die('Error - ' . $connected->getCode() . ' ' . $connected->getMessage()); 
} 

Mais cela n'a pas fonctionné. Encore 60 sec. Des idées là-dessus? J'ai essayé de faire mes propres recherches pendant une heure, sans succès ... Merci beaucoup!

+0

-> ini_set ('max_execution_time', 10); ou essayez directement dans la source. –

+0

J'ai essayé "ini_set ('max_execution_time', 10);" déjà, mais encore 60 sec ... Je ne sais pas pourquoi? –

Répondre

0

max_execution_time ou purement set_time_limit uniquement pour le script PHP. Si la connexion à Filemaker peut être définie sur un autre délai dans la configuration Filemaker.

À partir de PHP Doc; Vous ne pouvez pas définir ceci dans `php.ini`??

Note: The set_time_limit() function and the configuration directive max_execution_time only affect the execution time of the script itself. Any time spent on activity that happens outside the execution of the script such as system calls using system(), stream operations, database queries, etc. is not included when determining the maximum time that the script has been running. This is not true on Windows where the measured time is real.

+0

Cher weirdo, merci beaucoup pour votre contribution. Ça a du sens. Merde, cela signifie aussi que je n'ai aucune idée de la façon de réduire le délai pour la requête Filemaker ... Y at-il une façon de script quelque chose en PHP comme: "Essayez de faire quelque chose, si rien ne se passe après 10 sec. autre chose?" - Désolé pour ma façon très simple de le décrire. ;-) Merci beaucoup encore une fois! –