INTEGRITY Dokumentace

Řešení potíží

Ladění

wrangler dev a wrangler tail jsou vám oba k dispozici, abyste mohli ladit své Durable Objects.

wrangler tail zobrazuje živý přehled logů konzole a výjimek pro každý požadavek obsloužený vaším kódem Worker, včetně běžných požadavků Worker i požadavků Durable Object. Po spuštění npx wrangler deploy, můžete použít wrangler tail v kořenovém adresáři projektu Workeru a navštivte URL adresu Workeru, abyste v terminálu viděli konzolové a chybové protokoly.

Časté chyby

Nebyly registrovány žádné obslužné rutiny událostí. Tento skript nedělá nic.

V souboru Wrangler se ujistěte, že dir a main položky odkazují na správný soubor obsahující kód vašeho Worker a že přípona souboru je .mjs místo .js při použití syntaxe modulů ES.

Nelze použít --delete-class migraci na třídu.

Při odstraňování migrace pomocí npx wrangler deploy --delete-class <ClassName>, se můžete setkat s touto chybou: "Cannot apply --delete-class migration to class <ClassName> without also removing the binding that references it". Měli byste odstranit odpovídající binding v [durable_objects] v Konfigurační soubor Wrangler před pokusem o použití --delete-class znovu.

Durable Object je přetížený.

Jedna instance Durable Object nemůže odvést více práce, než je možné v rámci jednoho vlákna. Následující chyby znamenají, že Durable Object má na zpracování příchozích požadavků příliš mnoho práce:

Tuto chybu můžete vyřešit tak, že u jednoho požadavku uděláte méně práce, nebo že budete posílat méně požadavků. Můžete například rozdělit požadavky mezi více instancí Durable Object.

Tyto a další chyby způsobené přetížením budou mít .overloaded vlastnost nastavenou u svých výjimek, kterou lze použít k tomu, aby se přetížené operace neopakovaly.

Váš účet generuje příliš velkou zátěž na Durable Objects. Omezte prosím zátěž a zkuste to znovu později.

Existuje limit na to, jak rychle můžete vytvářet nové stuby pro nové nebo existující Durable Objects. Tato vyhledávání se obvykle ukládají do mezipaměti, takže pokusy o stejnou sadu nedávno použitých Durable Objects by měly být úspěšné, a proto je bezpečné tuto chybu zachytit a po krátké prodlevě to zkusit znovu. Pokud je to možné, zvažte také rozložení těchto vyhledávání do více požadavků.

Durable Object byl resetován, protože byl aktualizován jeho kód.

Slovo reset v chybových zprávách odkazuje na stav v paměti. Jakýkoli trvalý stav, který již byl úspěšně persistován pomocí state.storage není ovlivněn.

Viz Globální jedinečnost.

Operace úložiště Durable Object překročila časový limit, což způsobilo reset objektu.

Aby nedocházelo k neomezenému blokování, existuje limit na to, jak dlouho mohou operace s úložištěm trvat. U Durable Objects s dostatečně velkým počtem párů klíč-hodnota deleteAll() může tento časový limit překročit a selhat. V takovém případě mějte na paměti, že každý deleteAll() volání skutečně postupuje vpřed a že je bezpečné jej opakovat, dokud neuspěje. V opačném případě kontaktujte podpora Cloudflare.

Váš účet provádí příliš mnoho souběžných operací s úložištěm. Omezte prosím zátěž a zkuste to znovu později.

Kromě doporučeného postupu se zpožděním zvažte také úpravu kódu tak, aby využíval state.storage.get(keys Array<string>) namísto několika jednotlivých state.storage.get(key) volání, kdekoli je to možné.