Cloudflare Durable Objects теперь откладывают обновление кода до пяти минут

Cloudflare Durable Objects теперь откладывают обновление кода до пяти минут
Содержание статьи

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 применяет код сразу и может понадобиться, если проверка развёртывания должна немедленно обращаться к новой версии.

Перед следующим выпуском проверьте, рассчитывают ли ваши проверки на мгновенную смену версии. Отдельно воспроизведите в тестовом окружении длительную операцию и переподключение клиента. Сохранение состояния, повтор запросов и обработка перезапуска остаются задачами приложения.

Для практического разбора жизненного цикла соединений и серверного состояния можно обратиться к ментору по серверной разработке. Новый режим стоит включить в сценарий приёмки релиза, особенно если прежняя проверка считала завершение команды развёртывания доказательством мгновенного обновления каждого активного объекта.

Похожие статьи по данной теме