Google の最新の Windows App Engine PHP SDK v1.9.38 を使用して、ローカル開発サーバーで実行時間の長いスクリプトを実行していますが、何らかの理由で 30 秒でタイムアウトしています。エラーは、たとえば「致命的なエラー: 最大実行時間を超えたため、リクエストが中止されました。[スクリプト パス]\timertest.php 8 行目」です。
自動スケーリングのタイムアウトは 60 秒のはずです。ここで何が欠けているのかわかりません... 1 つのスクリプトでさまざまなファイル処理を行っていますが、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 サーバーのみの問題です。私が処理しているファイルはローカルであるため、オンライン ライブ側については気にしません (ローカルのままにしておく必要があります)。
提案などありがとうございます!