Laravel & PHP Deep — фреймворки и пакеты

Octane ускоряет Laravel, но ломает привычку «запрос умер — память умерла»

Octane ускоряет Laravel, но ломает привычку «запрос умер — память умерла»

Octane держит приложение в памяти между запросами, поэтому код начинает жить дольше, чем вы привыкли в классическом PHP-FPM. Отсюда главный риск: любой объект, singleton, статический кэш или замыкание может протечь в следующий запрос.

Проверяйте перед включением:
— нет ли хранения Request, Auth, tenant или пользователя в свойствах сервиса;
— не мутируется ли конфиг, локаль, timezone и другие глобальные состояния;
— не копится ли в статике временный массив, результат выборки или коллекция;
— не завязан ли код на «инициализируется один раз и потом забылось».

Отдельно смотрите на пакеты: часть из них писалась под короткоживущий процесс и не умеет корректно очищать состояние. Если библиотека использует singletons, очереди в памяти, кэшированные резолвы контейнера или события без сброса, под Octane это всплывает быстро.

Хорошая практика простая: делайте сервисы максимально stateless, всё пользовательское передавайте аргументами, а после запроса сбрасывайте то, что может пережить lifecycle. Тогда Octane даёт прирост без загадочных багов, которые появляются только у второго посетителя.
Этот пост опубликован в Telegram-канале Laravel & PHP Deep — фреймворки и пакеты. Подписаться можно по ссылке: @laravel_php_deep.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

@server_setup_guide_arb · 18 SeptemberSeptember9
SPF и DKIM ломают доставку чаще, чем контент письма Если рассылка уходит в спам или режется на приёме, сначала проверяйте DNS, а не шаблон п...
@topical_map_factory_ubt · 18 SeptemberSeptember9
Ошибки URL-архитектуры, из-за которых новый сайт не взлетает в выдаче Новый сайт часто проигрывает не из-за контента, а из-за кривой адресно...
@cloudflare_optimization_pro_arb · 18 SeptemberSeptember9
Почему DDoS и WAF нельзя настраивать как два отдельных “щитка” Защита от DDoS и управление WAF-политиками должны работать как одна система....
@tracker_stack_ubt · 18 SeptemberSeptember9
FB CAPI ломается не на отправке, а на потере идентификаторов и дублях Архитектура должна быть простой: источник события → ваш сервер → CAPI-...
@email_delivery_labs_arb · 18 SeptemberSeptember9
Как масштабировать рассылки без потери репутации домена и попадания в спам Масштабирование в email — это расширение инфраструктуры, а не про...
start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @AFFtop_connect. Быстрый тест: $20 за канал, $1000 за пакет по сети.