Megosztás a következőn keresztül:


Újrapróbálkozési szabályzat implementálása JavaScript vagy TypeScript használatával

A felhőben futó vagy a távoli szolgáltatásokkal és erőforrásokkal kommunikáló alkalmazásoknak képesnek kell lenniük az átmeneti hibák kezelésére. Gyakran előfordul, hogy ezek az alkalmazások a hálózati kapcsolat pillanatnyi megszakadása, egy szolgáltatás vagy erőforrás foglaltsága esetén a kérések időtúllépése vagy más tényezők miatt tapasztalnak hibákat. A fejlesztőknek olyan alkalmazásokat kell létrehozniuk, amelyek transzparensen kezelik az átmeneti hibákat a stabilitás és a rugalmasság javítása érdekében.

Ebből a cikkből megtudhatja, hogyan konfigurálhat újrapróbálkoztatási szabályzatot egy Azure Blob Storage-hoz csatlakozó alkalmazáshoz a JavaScripthez készült Azure Storage-ügyfélkódtár használatával. Az újrapróbálkoztatási szabályzatok meghatározzák, hogyan kezeli az alkalmazás a sikertelen kérelmeket, és mindig úgy kell hangolni, hogy megfeleljen az alkalmazás üzleti követelményeinek és a hiba jellegének.

Újrapróbálkozás beállításainak konfigurálása

A Blob Storage újrapróbálkozési szabályzatai programozott módon vannak konfigurálva, így szabályozható, hogy a rendszer hogyan alkalmazza az újrapróbálkozások beállításait a különböző szolgáltatáskérésekre és forgatókönyvekre. A felhasználói interakción alapuló kéréseket kibocsátó webalkalmazások például kevesebb újrapróbálkozással és rövidebb késéssel rendelkező szabályzatot implementálhatnak, hogy növeljék a válaszképességet, és hiba esetén értesítsék a felhasználót. Alternatív megoldásként egy a háttérben kötegelt kérelmeket futtató alkalmazás vagy összetevő növelheti az újrapróbálkozások számát, és exponenciális késleltetési stratégia alkalmazásával lehetővé teheti, hogy a kérés sikeresen befejeződjön.

Az alábbi táblázat felsorolja a StorageRetryOptions-példány létrehozásakor elérhető paramétereket, valamint a típust, a rövid leírást és az alapértelmezett értéket, ha nem hajt végre módosításokat. Proaktívnak kell lennie ezeknek a tulajdonságoknak az értékeinek finomhangolásában az alkalmazás igényeinek megfelelően.

Tulajdonság Típus Leírás Alapértelmezett érték
maxRetryDelayInMs number Opcionális. Megadja a művelet újrapróbálkozása előtt engedélyezett maximális késleltetést. 120 másodperc (vagy 120 * 1000 ms)
maxTries number Opcionális. Az újrapróbálkozási kísérletek maximális száma a feladás előtt. 4
retryDelayInMs number Opcionális. Megadja a művelet újrapróbálkozása előtt használandó késés mértékét. 4 másodperc (vagy 4 * 1000 ms)
retryPolicyType StorageRetryPolicyType Opcionális. A StorageRetryPolicyType alapértelmezett értéke az exponenciális újrapróbálkozási szabályzat. StorageRetryPolicyType.Exponenciális
secondaryHost string Opcionális. Másodlagos tárfiókvégpont a kérések újrapróbálkozásához. Az érték beállítása előtt meg kell ismernie az elavult és potenciálisan inkonzisztens adatok olvasásával kapcsolatos problémákat. További információ: Georedundancia használata magas rendelkezésre állású alkalmazások tervezéséhez. Egyik sem
tryTimeoutInMs number Opcionális. A kérelem megszakítása és a feltételezett meghiúsulás előtt engedélyezett maximális idő. Ez az időtúllépés a műveleti kérelemre vonatkozik, és a gazdagép számára elérhető sávszélességen, valamint a tárolási szolgáltatás közelségén kell alapulnia. A 0 vagy a nem definiált érték nem eredményez alapértelmezett időtúllépést az ügyfélen, és a kiszolgálóoldali alapértelmezett időtúllépést használja a rendszer. További információért lásd: Időtúllépések a blobszolgáltatás műveleteinél.

A következő kód példában létrehozunk egy StorageRetryOptions példányt, beállítjuk benne az újrapróbálkozási opciókat, majd átadjuk egy új StoragePipelineOptions példánynak, és példányosításkor megadjuk pipelineBlobServiceClient.

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
);

Ebben a példában az BlobServiceClient objektumból kibocsátott szolgáltatáskérések a megadott újrapróbálkozési beállításokat használják retryOptions. Ez a szabályzat az ügyfélkérésekre vonatkozik. Az alkalmazás igényeinek megfelelően különböző újrapróbálkozási stratégiákat konfigurálhat a szolgáltatás-ügyfelek számára.

  • Az újrapróbálkozási szabályzatokkal kapcsolatos architekturális útmutatásért és az újrapróbálkozási szabályzatok általános ajánlott eljárásaiért lásd : Átmeneti hibakezelés.
  • Az átmeneti hibák újrapróbálkozási mintájának implementálásával kapcsolatos útmutatásért lásd : Újrapróbálkozási minta.