@Tutucu

Как вывести JSON, если продолжительность выполнения PHP скрипта больше определённого значения?

Всем привет! У меня есть API, нужно сделать так, чтобы если обработка запроса к нему занимает по времени больше 2-х секунд выводилось сообщение json. API состоит из nginx, php и mysql. JSON не меняется, можно отдать статичный файл с ним.
Как я понял через php это сделать невозможно, т.к. функция set_time_limit() не учитывает время запросов к mysql. Пробовал делать через TimeOut в nginx и fpm, но мне нужен, чтобы код ответа был 200, а не 504.
Как можно реализовать такое?
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
через nginx настраиваем нужный timeout и катчим 504 ошибку
  • proxy_connect_timeout
  • proxy_send_timeout
  • proxy_read_timeout
  • send_timeout


https://gist.github.com/weapp/99049e69477f924dafa7

error_page 504 /504.json;
location /504.json{
    add_header 'Content-Type' 'application/json charset=UTF-8';
    return 200 '{"error": {"status_code": 200, "status": "Internal Server Error"}}';
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы