


30 октября 2026 года Cloudflare изменила стандартное поведение обновлений Durable Objects. Активный объект теперь может продолжать работу на прежнем коде до перехода в гибернацию или истечения 300 секунд. Mentoring.digital разбирает, почему это важно для длительных операций и WebSocket-соединений.
Durable Object позволяет координировать состояние между клиентами и поддерживать длительную работу. Один объект должен выполнять только одну версию кода. Раньше обновление применялось сразу, что могло прерывать текущую работу и закрывать соединения.
Теперь стандартный режим называется deferred. Пока активный объект ждёт гибернации, он может продолжать принимать запросы на старой версии. Если объект успел перейти в гибернацию, следующий запрос запускает его уже на новом коде. Если время ожидания закончилось раньше, объект сбрасывается и принимает обновление.
Отсрочка действует по принципу best effort. Она даёт работе дополнительное время, но не гарантирует, что каждая операция завершится. Например, обновление среды исполнения Cloudflare может сбросить объект раньше заданного предела.
Сохранение WebSocket-соединений при принятии нового кода после гибернации относится к соединениям, использующим Hibernation API. Это условие важно: обещание о непрерывности нельзя автоматически переносить на любой WebSocket или любую причину перезапуска.
Настройка code_update_strategy в конфигурации Wrangler позволяет выбрать режим и задержку. Значение max_delay задаётся в секундах от 0 до 86400; без явного значения используется 300. Режим immediate применяет код сразу и может понадобиться, если проверка развёртывания должна немедленно обращаться к новой версии.
Перед следующим выпуском проверьте, рассчитывают ли ваши проверки на мгновенную смену версии. Отдельно воспроизведите в тестовом окружении длительную операцию и переподключение клиента. Сохранение состояния, повтор запросов и обработка перезапуска остаются задачами приложения.
Для практического разбора жизненного цикла соединений и серверного состояния можно обратиться к ментору по серверной разработке. Новый режим стоит включить в сценарий приёмки релиза, особенно если прежняя проверка считала завершение команды развёртывания доказательством мгновенного обновления каждого активного объекта.