Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Dlouhotrvající operace (LRO) je asynchronní časově náročná úloha, která umožňuje asynchronní dotazování při zachování odezvy a škálovatelnosti. Dotazování odkazuje na model klienta potřebný k pravidelné kontrole stavu operace, dokud se operace nedokončí.
V kontextu webových služeb a webových rozhraní API se LRO odkazují na úlohy nebo procesy, které vyžadují značné množství času pro provedení, což znamená, že LRO nejsou vhodné k okamžitému dokončení v rámci jednoho cyklu požadavek-odezva.
Mezi příklady takových operací patří nahrávání velkých dat, složité výpočty, dávkové zpracování nebo zřizování prostředků v cloudových prostředích. Ne všechny dlouhotrvající operace mají výsledek na Fabric. Některé operace se spustí až po dokončení bez zadání adresy URL výsledku.
Specifikace rozhraní API
Rozhraní API, které používá infrastrukturu LRO, vrací jeden ze dvou úspěšných výsledků:
- Stavový kód HTTP 200 OK nebo 201 CREATED – Text odpovědi obsahuje výsledek rozhraní API, pokud existuje výsledek.
- Stavový kód HTTP 202 Akceptovaný – text odpovědi je prázdný.
Infrastrukturou LRO se automaticky přidají tři hlavičky odpovědi:
-
Location header: Obsahuje adresu URL pro dotazování stavu operace. -
x-ms-operation-id header: Obsahuje ID operace, které lze použít k vytvoření adresy URL stavu operace. -
Retry-After header: Obsahuje celé číslo představující počet sekund, po které má volající čekat, než se dotazuje na stav operace.
Dotazování na stav a získání výsledku
Existují dva přístupy, které můžete použít při sledování stavu a získat výsledek, jakmile je operace dokončena.
Použití hlavičky umístění : hlavička umístění, která je vrácena během běhu operace, je API pro získání stavu operace s ID operace pro probíhající operaci. Po dokončení operace je vrácena hlavička umístění obsahující ID operace a výsledek prostřednictvím rozhraní API pro získání výsledku operace.
Pomocí x-ms-operation-idmůžete sestavovat volání API, která se vracejí ve hlavičce operace, pomocí hlavičky x-ms-operation-id, jež je vrácena v odpovědi na původní volání. Získejte stav pomocí rozhraní GET Operation State API, pomocí ID operace a získejte výsledek pomocí rozhraní API pro získání výsledku operace (pomocí ID operace).
Ukázka kódu jazyka C# pro dotazování stavu operace
// Get operationUrl from location header or by building it with operation ID and Get State API.
do
{
Thread.Sleep(retryAfter * 1000); // Get retryAfter value from Retry-After header.
response = client.GetAsync(operationUrl).Result;
jsonOperation = response.Content.ReadAsStringAsync().Result;
operation = JsonSerializer.Deserialize<FabricOperation>(jsonOperation);
} while (operation.status != "Succeeded" && operation.status != "Failed");
Příklad vytvoření položky
Toto je příklad operace LRO. V tomto příkladu uživatel vytvořil dva poznámkové bloky.
Fáze 1: Vytvoření dvou poznámkových bloků
Vytvořte dva poznámkové bloky.
Fáze 2: Anketa poznámkových bloků
Kontrola procesu vytvoření poznámkového bloku pomocí Zjistit stav operace.
Notebook 1 – vrácení 201. Operace je dokončena.
{
"id": "551e6a4d-d81a-4079-b08c-25cec3cebba9",
"type": "Notebook",
"displayName": "Notebook1",
"description": "",
"workspaceId": "a91e61ef-862e-4611-9d09-9c7cc07b2519"
}
Notebook 2 – Vrácení 202. Operace není dokončená. Poznámkový blok 2 se nevytvořil.
{
"status": "Running",
"createdTimeUtc": "2023-11-13T22:24:40.477Z",
"lastUpdatedTimeUtc": "2023-11-13T22:24:41.532Z",
"percentComplete": 25
}
3. fáze: Hlasování poznámkového bloku 2
Počkejte 20 minut a pak dotazujte poznámkový blok 2 pomocí Získání stavu operace.
GET https://api.fabric.microsoft.com/v1/operations/b80e135a-adca-42e7-aaf0-59849af2ed78
Notebook 2 – Vrácení 201. Operace je dokončena. Vytvoří se poznámkový blok 2.
Operace je dokončena – získal stavový kód HTTP 200-OK. Text odpovědi:
{
"status": "Succeeded",
"createdTimeUtc": "2023-11-13T22:25:06.1193103",
"lastUpdatedTimeUtc": "2023-11-13T22:25:09.0255787",
"percentComplete": 100,
"error": null
}
Fáze 4: Získání výsledku operace poznámkového bloku 2
Získejte výsledek operace pro poznámkový blok 2 s Získejte výsledek operace.
GET https://api.fabric.microsoft.com/v1/operations/b80e135a-adca-42e7-aaf0-59849af2ed78/result
Notebook 2 – Vratky 200. Vytvoří se poznámkový blok 2.
{
"id": "221a6eea-0f27-41eb-bcc5-e4d7b216ed43",
"type": "Notebook",
"displayName": " Notebook2",
"description": "",
"workspaceId": "a91e61ef-862e-4611-9d09-9c7cc07b2519"
}