Sdílet prostřednictvím


Implementace zásad opakování pomocí JavaScriptu nebo TypeScriptu

Každá aplikace, která běží v cloudu nebo komunikuje se vzdálenými službami a prostředky, musí být schopná zpracovat přechodné chyby. U těchto aplikací je běžné, že dochází k chybám kvůli momentální ztrátě síťového připojení, vypršení časového limitu požadavku, když je služba nebo prostředek zaneprázdněný, nebo kvůli jiným faktorům. Vývojáři by měli vytvářet aplikace pro transparentní zpracování přechodných chyb za účelem zlepšení stability a odolnosti.

V tomto článku se dozvíte, jak pomocí klientské knihovny Azure Storage pro JavaScript nakonfigurovat zásady opakování pro aplikaci, která se připojuje ke službě Azure Blob Storage. Zásady opakování definují, jak aplikace zpracovává neúspěšné požadavky, a měly by se vždy ladit tak, aby odpovídaly obchodním požadavkům aplikace a povaze selhání.

Konfigurace možností opakování

Zásady opakování pro Blob Storage se konfigurují programově a nabízejí kontrolu nad tím, jak se možnosti opakování použijí pro různé požadavky a scénáře služby. Například webová aplikace, která vydává požadavky na základě interakce uživatele, může implementovat zásadu s menším počtem opakování a kratšími prodlevami, aby se zvýšila rychlost odezvy a upozorňují uživatele, když dojde k chybě. Případně může aplikace nebo komponenta, která na pozadí spouští dávkové požadavky, zvýšit počet opakovaných pokusů a použít strategii exponenciálního zpoždění, aby se požadavky mohly úspěšně dokončit.

Následující tabulka uvádí dostupné parametry při vytváření instance StorageRetryOptions spolu s typem, stručným popisem a výchozí hodnotou, pokud neproděláte žádné změny. Měli byste být proaktivní při ladění hodnot těchto vlastností tak, aby vyhovovaly potřebám vaší aplikace.

Vlastnost Typ Popis Výchozí hodnota
maxRetryDelayInMs number Nepovinné. Určuje maximální povolenou prodlevu před opakováním operace. 120 sekund (nebo 120 * 1000 ms)
maxTries number Nepovinné. Maximální počet pokusů před ukončením pokusů. 4
retryDelayInMs number Nepovinné. Určuje množství zpoždění, které se má použít před opakováním operace. 4 sekundy (nebo 4 * 1000 ms)
retryPolicyType StorageRetryPolicyType Nepovinné. StorageRetryPolicyType, výchozí hodnota je exponenciální zásada opakování. StorageRetryPolicyType.Exponential
secondaryHost string Nepovinné. Sekundární koncový bod účtu úložiště pro opakování požadavků. Před nastavením této hodnoty byste měli porozumět problémům se čtením zastaralých a potenciálně nekonzistentních dat. Další informace najdete v tématu Použití geografické redundance k návrhu aplikací s vysokou dostupností. Nic
tryTimeoutInMs number Nepovinné. Maximální povolená doba před zrušením požadavku a předpokládá se, že selhala. Tento časový limit platí pro požadavek na operaci a měl by být založený na šířce pásma dostupné hostitelskému počítači a blízkosti služby Storage. Hodnota 0 nebo hodnota nedefinovaná má za následek neexistenci výchozího časového limitu na straně klienta, a proto se použije výchozí časový limit na straně serveru. Další informace najdete v tématu Časové limity pro operace služby Blob.

V následujícím příkladu kódu nakonfigurujeme možnosti opakování v instanci StorageRetryOptions, předáme ji nové instanci StoragePipelineOptions a předáme pipeline při vytváření BlobServiceClientinstancí:

const options = {
  retryOptions: {
    maxTries: 4,
    retryDelayInMs: 3 * 1000,
    maxRetryDelayInMs: 120 * 1000,
    retryPolicyType: StorageRetryPolicyType.EXPONENTIAL
  },
};

const pipeline = newPipeline(credential, options);

const blobServiceClient = new BlobServiceClient(
  `https://${accountName}.blob.core.windows.net`,
  credential,
  pipeline
);

V tomto příkladu každý požadavek služby vydaný z objektu BlobServiceClient používá možnosti opakování definované v retryOptions. Tato zásada se vztahuje na požadavky klientů. Pro klienty služeb můžete nakonfigurovat různé strategie opakování na základě potřeb vaší aplikace.

  • Pokyny k architektonickému řešení a obecné osvědčené postupy pro politiky opakování najdete v tématu Zpracování přechodných chyb.
  • Pokyny k implementaci opakovacího vzoru pro přechodné selhání najdete v tématu Opakovací vzor.