2
PHPスクリプトは、504ゲートウェイタイムアウトを受け取ったときに実行を停止しますか?
共有サーバー(サイトグラウンド)を使用していて、WordPress PHPスクリプトに30秒以上かかるため、504ゲートウェイのタイムアウトが返されます。 それ以上のエラーが発生しない場合、クエリは実行されて完了しますか? 編集:私は私のホスティングチームにこのエラーを受け取った理由を尋ねました、ここでSiteground Hostingの専門家は次のように問題を説明しました: すべてのサーバーでApache + Nginxの両方を使用しています。ApacheはメインのWebサービスに使用され、Nginxはリバースプロキシおよび分散キャッシュとして使用されます。キャッシュから応答を提供できない場合(通常、これは動的コンテンツを指します)、Nginxからの要求はApacheに対して行われます。これは、Apacheがリクエストを処理しているときにリクエストをWebサイトに転送し、PHPロジックに従ってMySQLクエリを実行したり、他のデータをフェッチしたりできます。このプロセスに時間がかかりすぎ、ApacheがNginxにタイムリーに応答を返さない場合、このエラーが表示されます。つまり、アプリケーションは許可された時間内にプロセスを完了したため、Apacheは要求を処理できません。これは、開始されたプロセスがおそらく完全に完了せず、一部のデータ/アクションが保存/実行された可能性があることも意味します。 専門家によると"initiated process most probably not completed fully"、 私のシナリオの詳細:私のスクリプトはwp_insert_post、ワードプレスのWebサイトに、方法を使用したバリエーションを持つwoocommerce製品を追加します。製品を追加すると、新しく追加された製品の画像が表示されます。 1商品(40バリエーション)を追加すると完成し、商品画像が表示されます。6つの製品(240のバリエーション)を追加すると、ブラウザーに直接エラーが表示されます。 この問題をさらにテストするために、コードを変更し、ajaxを使用してコードを書き直し、システムのようなプロセスバーを追加しました。(バリエーションごとに数値を増やします)。 1つの製品(40のバリエーション)のコードを実行した後、プロセス番号が40に増え、製品の画像が表示されます。 6つの製品のコードを実行すると、プロセス番号が240に増えますが、何も表示されず、チェックすると504エラーが表示されます。(jQuery.Ajax機能エラー部) したがって、これはクエリがタイムアウトしても実行されると思いますが、確信が持てず、これに関する適切なドキュメントがないため、504ゲートウェイタイムアウトエラーの詳細を探しています。