Size: a a a

2020 October 09

МЯ

Михаил Я in PHP
Артём
Чистейший, по версии Великого Проповедника Чистого Кода Тараса
так это как?
источник

PA

Pavel Agaletskiy in PHP
Михаил Я
так это как?
На php редко кто сейчас пишет web-сервис совсем без какого-либо фреймворка или хотя бы комбинации библиотек, потому что... Потому что php очень хочет быть явой и к тому же не даёт из коробки в стандартной библиотеке какого-то базового роутера или других очень нужных для веб сервиса штуковин. Хотя сам по себе код выше уже вполне валидо обратывает запросы и может использоваться в качестве какого-то быстрого скрипта/решения, но при малейшем дальнейшем развитии его будет сложно тестировать и поддерживать.

Если твоя цель - одна маленькая страничка без претензий для личного пользования, то код выше сойдёт. Если же хочется пощупать как правильно, посмотри вот это https://symfony.com/doc/current/quick_tour/the_big_picture.html
источник

T

Trekov in PHP
Всем привет. Назрел такой вопрос. Дочерний процесс fpm получает sigkill и помирает, не успев выдать никаких логов. Кто-нибудь сталкивался с таким?
Выглядит это так. nginx возвращает 502 страничку. Сами логи пишутся. Весь процесс обработки запроса происходит почти до конца и где-то в моменте коммита транзакции (или близко к этому) обрубаются логи.
Смотрел всякое вроде того, что fpm посылает подпроцессам sigkill и они ничего не успевают, но контейнер не падал, да и картина не похожа.
Видел также всякие советы вроде увеличить ресурсы, но все это в кубере и до лимита вообще никак не дотягивает.
История детективная.
источник

А

Алексей in PHP
Артём
Может, это адепт чистого кода
Как бы он бд использует, так что это априори не чистый код 🌚
источник

T

Trekov in PHP
Trekov
Всем привет. Назрел такой вопрос. Дочерний процесс fpm получает sigkill и помирает, не успев выдать никаких логов. Кто-нибудь сталкивался с таким?
Выглядит это так. nginx возвращает 502 страничку. Сами логи пишутся. Весь процесс обработки запроса происходит почти до конца и где-то в моменте коммита транзакции (или близко к этому) обрубаются логи.
Смотрел всякое вроде того, что fpm посылает подпроцессам sigkill и они ничего не успевают, но контейнер не падал, да и картина не похожа.
Видел также всякие советы вроде увеличить ресурсы, но все это в кубере и до лимита вообще никак не дотягивает.
История детективная.
Это симфони, если это важно
источник

T

Trekov in PHP
И оно определенно реагирует на один конкретный запрос, который проходит валидацию и в констрейты базы данных вписывается.
источник

T

Trekov in PHP
Не в проде оно, естественно, работает нормально
источник

T

Trekov in PHP
Самое печальное, что на этот sigkill не повесить обработчик
источник

T

Trekov in PHP
Обычно 502 происходит при деплое, как раз когда fpm прибивает воркеры
источник
2020 October 10

КГ

Константин Грачев... in PHP
Trekov
И оно определенно реагирует на один конкретный запрос, который проходит валидацию и в констрейты базы данных вписывается.
Может там запрос такой что просто во время запроса не укладывается?
В прод базе очевидно данных побольше чем не в прод где оно работает
источник

T

Trekov in PHP
Все происходит секунды за 3
источник

T

Trekov in PHP
От начала запроса до умирания
источник

КГ

Константин Грачев... in PHP
Откуда инфа что sigkill посылается? Предположение?
источник

T

Trekov in PHP
WARNING: [pool www] child 32952 exited on signal 9 (SIGKILL) after 751.400065 seconds from start

Сигнал fpm может посылать, только вот зачем...
источник

T

Trekov in PHP
recv() failed (104: Connection reset by peer) while reading response header from upstream, ...

Такое перед этим
источник

АГ

Алексей Гевондян... in PHP
751 секунда?
источник

КГ

Константин Грачев... in PHP
источник

КГ

Константин Грачев... in PHP
Уверен что ресурсов хватает?
источник

T

Trekov in PHP
Вот такое я смотрел. В момент сбоя ело памяти почти как в requests прописано, даже не дотягивало
источник

КГ

Константин Грачев... in PHP
Trekov
Вот такое я смотрел. В момент сбоя ело памяти почти как в requests прописано, даже не дотягивало
Я бы поднял память и протестил, чтобы уж точно исключить
источник