jsonscraper
Trhy
Zpět do magazínu

Cloudflare odkládá aktualizace Durable Objects, aby aktivní úlohy mohly doběhnout

Po nasazení může aktivní objekt běžet až pět minut na staré verzi; WebSocket připojení přežije přechod, pokud používá Hibernation API.

Redakční zásady Nahlásit chybu

Po nasazení může aktivní Cloudflare Durable Object nyní pokračovat v práci na stávající verzi kódu, dokud nepřejde do hibernace, případně do uplynutí stanovené lhůty. Cloudflare 30. října nastavila odloženou aktualizaci jako výchozí s maximálním zpožděním pěti minut. Pro vývojáře to mění chování již běžících objektů během nasazování: aktualizace je nemusí okamžitě přerušit a podporovaná WebSocket připojení mohou při přechodu na novou verzi zůstat zachována.

Článek: Cloudflare odkládá aktualizace Durable Objects, aby aktivní úlohy mohly doběhnout
Shrnutí: Od 30. října Cloudflare ve výchozím nastavení používá pro Durable Objects odložené aktualizace kódu. Aktivní objekty tak dostanou čas přejít do hibernace, nejde však o záruku dokončení každé operace ani zachování všech WebSocket připojení.
Role obrázku: titulní — ústřední myšlenka
Sekce: 
Vizuální téma: Koncepční redakční vizualizace přetrvávajícího cloudového výpočetního objektu
Ilustrace znázorňuje podstatu aktualizace: aktivní objekt může pokračovat v práci se starým kódem až do hibernace nebo uplynutí stanovené lhůty.© jsonscraper · vytvořeno pomocí AI

Co se děje během nasazení

Durable Objects jsou adresovatelné objekty se stabilní identitou a stavem, které Cloudflare využívá mimo jiné ke koordinaci klientů, dlouhotrvajícím úlohám a WebSocket relacím. Pro jeden objekt je současně aktivní jedna verze kódu. Při okamžité výměně se proto může aktivní instance resetovat a přerušit práci nebo spojení.

Výchozím scénářem je nyní odložený přechod. Po nasazení aktivní objekt dál obsluhuje požadavky se starou verzí. Pokud přejde do hibernace dříve, nová verze se spustí při dalším požadavku. Jestliže uplyne pět minut a objekt je stále aktivní, resetuje se a začne používat novou verzi. Nasazení Workeru přitom skončí samostatně: zpoždění se týká okamžiku, kdy již aktivní objekt začne vykonávat nový kód.

Komu to pomůže

Změna je důležitá pro služby, v nichž jeden objekt udržuje práci mezi požadavky, například pro dlouhou relaci, koordinaci několika klientů nebo WebSocket spojení. Odložený přechod vytváří časové okno, během kterého může takový objekt přirozeně dokončit aktuální činnost nebo přejít do nečinnosti, než se aktualizuje. U WebSocket Cloudflare výslovně uvádí jednu podmínku: spojení využívající Hibernation API zůstanou připojená, když objekt po hibernaci převezme nový kód.

Praktickým závěrem pro tým je určit, které aktivní objekty mohou zůstat vytížené déle než několik minut, a zjistit, které WebSocket API používají. Na tom záleží, zda nový postup nasazení aplikaci poskytne šanci na plynulý přechod, nebo zda spojení při vynucené aktualizaci skončí.

Pět minut je časové okno, nikoli záruka

Cloudflare popisuje odloženou aktualizaci jako best effort: objekt se může resetovat dříve, například při aktualizaci runtime prostředí. Pokud do konce maximální lhůty nepřejde do hibernace, platforma nasadí novou verzi prostřednictvím resetu. Důležitý stav proto ukládejte do trvalého úložiště a navrhujte operace s ohledem na možné opětovné spuštění. Dokumentace Cloudflare doporučuje uchovávat stav, který má přežít nasazení, místo spoléhání na paměť aktivní instance.

Týmy mohou chování přepsat v konfiguraci Durable Objects: nastavit režim okamžité aktualizace nebo zvolit jinou lhůtu pro odložený přechod. Okamžitý režim se hodí, když se má nová verze projevit hned, například při naléhavé opravě; delší prodleva může objektům poskytnout více času, zároveň však prodlouží období, kdy některé instance obsluhují starou verzi.

Co zkontrolovat před dalším nasazením

Ověřte kompatibilitu požadavků mezi Workerem a Durable Object během období, kdy mohou běžet různé verze. Zkontrolujte, zda je kritický stav uložen v úložišti, a ne pouze v paměti. U WebSocket zjistěte, zda aplikace používá Hibernation API: běžná spojení mohou při nasazení aktualizace skončit. Pokud nasazení vyžaduje okamžitý přechod, ověřte výslovné nastavení režimu a nespoléhejte na novou výchozí hodnotu.

Cloudflare tak změnila výchozí kompromis při nasazení: aktivní objekty dostanou omezený čas na přirozený přechod a týmy si zachovávají možnost aktualizaci urychlit změnou nastavení. Nejužitečnější je před dalším nasazením ověřit kompatibilitu staré a nové verze, zachování stavu a typ WebSocket připojení.

Lidé

Pro tento článek zatím nejsou uvedeni žádní lidé.

Pokračujte ve čteníAgenti OpenAI předávali tajemství přes cache procesoru — bez sítě a sdílených souborů
Přečtěte si další článek

Proměňte přečtené ve funkční integraci

Prozkoumejte API sociálních dat jsonscraper, testujte požadavky a sestavte další workflow.

Prozkoumat API