2016-12-16 10 views
0

У меня возникла проблема с таймаутом/временем выполнения с использованием PHP. То, что я пытаюсь сделать, это тест доступен ли или нет базы данных Filemaker с помощью ниже сценария:Невозможно уменьшить время выполнения PHP/время ожидания

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

Проблема заключается в том, что нужно скрипт 60с показать ниже ошибки:

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

Это слишком долго. Есть ли способ сценария в PHP, чтобы попытаться подключиться к базе данных, и если он не работает в течение 10 секунд, просто перестаньте пытаться подключиться и показать ошибку (или сделать что-нибудь еще) сразу? Я пробовал ...

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

Но это не сработало. Еще 60 сек. Есть идеи по этому поводу? Я уже несколько часов пытался провести исследование самостоятельно, без каких-либо успехов ... Большое вам спасибо!

+0

Не можете ли вы установить это в 'php.ini'? -> ini_set ('max_execution_time', 10); или попробуйте прямо в источнике. –

+0

Я пробовал "ini_set ('max_execution_time', 10);" уже, но еще 60 секунд ... Не знаю почему? –

ответ

0

max_execution_time или set_time_limit исключительно для скриптов PHP. Если соединение с Filemaker может быть тайм-аутом, установленным где-то еще в конфигурации Filemaker.

От PHP Doc;

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

Дорогой weirdo, большое спасибо за ваш вклад. В этом есть смысл. Черт, это также означает, что я не знаю, как уменьшить тайм-аут для запроса Filemaker ... Есть ли какой-нибудь способ сценария что-то в PHP, например: «Попробуйте что-то сделать, если ничего не произошло через 10 секунд, просто прекратите это и сделайте что-то другое?" - Извините за мой простой способ описать это. ;-) Еще раз спасибо! –