App Engine Win SDK PHP тайм-аут застрял на 30 секунд, должно быть 60?

Я использую последний Google App Engine PHP SDK, v1.9.38, для запуска некоторых долго выполняющихся сценариев на локальном сервере разработчика, и по какой-то причине они истекают через 30 секунд. Ошибка, например, «Неустранимая ошибка: запрос был прерван, поскольку он превысил максимальное время выполнения. В [my path path] \ timertest.php в строке 8»

Предполагается, что время автоматического масштабирования составляет 60 секунд! Я не уверен, что мне здесь не хватает … Я делаю различные операции с файлами в одном скрипте, но затем я написал тестовый скрипт, чтобы проверить, не сработал ли он и через 30 секунд, и это произошло. Сценарий:

<?php

$a = 1;

do
{
syslog(LOG_INFO, $a.' Sleeping for 10 secs...\n');
sleep(10);
$a++;
}
while($a < 8)

?>

Выход:

INFO: 1 Sleeping for 10 secs...\n
INFO: 2 Sleeping for 10 secs...\n
INFO: 3 Sleeping for 10 secs...\n
ERROR:root:php failure (255) with:

stdout:

X-Powered-By: PHP/5.5.26

Content-type: text/html

<br />

<b>Fatal error</b>:  The request was aborted because it exceeded the maximum execution time. in <b>[my script path]\timertest.php</b> on line <b>8</b><br />

INFO     2016-06-02 20:52:56,693 module.py:788] default: "GET /testing/timertest.php HTTP/1.1" 500 195

Я думал, что это была ошибка конфигурации где-то, но не уверен, что или где. Мой app.yaml очень стандартный:

application: ak2016-1
version: 1
runtime: php55
api_version: 1

handlers:
# Serve php scripts.
- url: /(.+\.php)$
script: \1
login: admin

и php.ini тоже:

google_app_engine.disable_readonly_filesystem = 1
upload_max_filesize = 8M
display_errors = "1"display_startup_errors = "1"

Как я уже сказал, это проблема только локального сервера dev SDK, меня не беспокоит вопрос о том, что происходит в режиме реального времени, так как файлы, которые я обрабатываю, являются локальными (и должны оставаться таковыми).

Спасибо за любые предложения и т.д!

1

Решение

Я развернул пример приложения на Таймер запроса документация, и не смог продублировать вашу проблему. Мои запросы все время ожидания после ~ 60 секунд:

$ time curl https://<project-id>.appspot.com/timeout.php
Got timeout! Cleaning up...
real    1m0.127s
user    0m0.021s
sys     0m0.010s

Затем я скопировал ваш код, app.yaml, а также php.ini чтобы посмотреть, смогу ли я дублировать это, и получил следующее в моих системных журналах:

INFO: 1 Sleeping for 10 secs...\n
INFO: 2 Sleeping for 10 secs...\n
INFO: 3 Sleeping for 10 secs...\n
INFO: 4 Sleeping for 10 secs...\n
INFO: 5 Sleeping for 10 secs...\n
INFO: 6 Sleeping for 10 secs...\n
INFO: PHP Fatal error:  The request was aborted because it exceeded the maximum execution time. in /base/data/home/apps/.../timeout2.php on line 9

Тем не менее, если у вас по-прежнему возникают проблемы с истечением времени ожидания запросов через 30 секунд, я бы предложил перенести нарушающий код в очереди задач. Надеюсь, это поможет!

2

Другие решения

Других решений пока нет …