Pitkäkestoisia toimintoja
Pitkäkestoinen toiminto on asynkroninen aikaa vievä tehtävä, joka mahdollistaa asynkronisen kyselyn ja säilyttää samalla reagoinnin ja skaalattavuuden. Kyselyt viittaavat asiakkaan malliin, jota tarvitaan toiminnon tilan säännöllisin väliajoin tarkistamiseen, kunnes toiminto on valmis.
Verkkopalvelujen ja ohjelmointirajapintojen yhteydessä LRO-organisaatiot viittaavat tehtäviin tai prosesseihin, jotka vaativat huomattavan paljon aikaa suorittamiseen, minkä vuoksi LR-koneet eivät sovellu välittömään suorittamiseen yksittäisessä pyyntövastausjaksossa.
Tällaisia toimintoja ovat esimerkiksi suurten tietojen lataukset, monimutkaiset laskennat, erän käsittely tai resurssien valmistelu pilviympäristöissä. Kaikkien pitkäkestoisen toiminnan tuloksena ei ole Fabricia. Jotkin toiminnot suoritetaan vain loppuun antamatta tuloksen URL-osoitetta.
Ohjelmointirajapinnan määritys
Ohjelmointirajapinta, joka käyttää LRO-infrastruktuuria, palauttaa toisen kahdesta onnistuneesta tuloksesta:
- HTTP-tilakoodi 200 OK tai 201 LUOTU – Vastauksen leipäteksti sisältää ohjelmointirajapinnan tuloksen, jos tulos on olemassa.
- HTTP-tilakoodi 202 Hyväksytty – Vastauksen leipäteksti on tyhjä.
LRO-infrastruktuuri lisää automaattisesti kolme vastausotsikkoa:
-
Location header
: Sisältää toiminnon tilan kyselyn URL-osoitteen. -
x-ms-operation-id header
: Sisältää toimintotunnuksen, jonka avulla voidaan muodostaa toiminnon tilan URL-osoite. -
Retry-After header
: Sisältää kokonaisluvun, joka edustaa sekuntien määrää, jota soittajan tulee odottaa, ennen kuin se lähettää kyselyn toiminnon tilaan.
Kyselyt osavaltiosta ja tuloksen hakemisesta
Voit tehdä kyselyn tilasta ja saada tuloksen, kun toiminto on suoritettu, kahdella tavalla:
Sijainnin otsikon : Toiminnon suorittamisen aikana palautettu sijaintiotsikko on Hae toiminnon tilan ohjelmointirajapinta, jossa on käynnissä olevan toiminnon tunnus. Kun toiminto on suoritettu, palautettu sijaintiotsikko on Toiminnon tuloksen hakemisen ohjelmointirajapinta, jolla on toiminnon tunnus ja tulos.
Käyttämällä x-ms-operation-id -: voit luoda ohjelmointirajapintakutsuja, jotka palauttavat toiminto-otsikkoon, käyttämällä x-ms-operation-id-otsikkoa, joka palautetaan ensimmäisen kutsun vastaukseksi. Vedä osavaltio Hae toiminnon tilan ohjelmointirajapinnan avulla käyttämällä toimintotunnusta ja hae tulos Toiminnon tulos -ohjelmointirajapinnan avulla (käyttämällä toimintotunnusta).
C#-koodiesimerkki toimintotilan kyselyä varten
// 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");
Kohteen luontiesimerkki
Tämä on esimerkki LRO-toiminnosta. Tässä esimerkissä käyttäjä loi kaksi muistikirjaa.
Vaihe 1: Luo kaksi muistikirjaa
Luo kaksi muistikirjaa.
Vaihe 2: Kysely muistikirjoista
Kyselyn tekeminen muistikirjasta käyttämällä Hanki operaatiotilan.
Notebook 1 – Palauttaa 201
. Toiminto on valmis.
{
"id": "551e6a4d-d81a-4079-b08c-25cec3cebba9",
"type": "Notebook",
"displayName": "Notebook1",
"description": "",
"workspaceId": "a91e61ef-862e-4611-9d09-9c7cc07b2519"
}
Notebook 2 – Palauttaa 202
. Toiminto ei ole valmis. Muistikirja 2 ei ole luotu.
{
"status": "Running",
"createdTimeUtc": "2023-11-13T22:24:40.477Z",
"lastUpdatedTimeUtc": "2023-11-13T22:24:41.532Z",
"percentComplete": 25
}
Vaihe 3: Kyselyn muistikirja 2
Odota 20 minuuttia ja kyselymuistikirja 2 käyttäen Hae operaatiotilan.
HANKI https://api.fabric.microsoft.com/v1/operations/b80e135a-adca-42e7-aaf0-59849af2ed78
Notebook 2 – Palauttaa 201
. Toiminto on valmis. Muistikirja 2 luodaan.
Toiminto on suoritettu– saimme 200-OK http-tilakoodin. Vastauksen leipäteksti:
{
"status": "Succeeded",
"createdTimeUtc": "2023-11-13T22:25:06.1193103",
"lastUpdatedTimeUtc": "2023-11-13T22:25:09.0255787",
"percentComplete": 100,
"error": null
}
Vaihe 4: Nouda muistikirja 2:n toimintatulos
Hae muistikirja 2:n toimintatulos Hae toiminnon tulos -.
HANKI https://api.fabric.microsoft.com/v1/operations/b80e135a-adca-42e7-aaf0-59849af2ed78/result
Notebook 2 – Palauttaa 200
. Muistikirja 2 luodaan.
{
"id": "221a6eea-0f27-41eb-bcc5-e4d7b216ed43",
"type": "Notebook",
"displayName": " Notebook2",
"description": "",
"workspaceId": "a91e61ef-862e-4611-9d09-9c7cc07b2519"
}