Kontrola współbieżności
Uwaga
Interfejsy API portalu partnera w chmurze są zintegrowane z usługą i będą nadal działać w Centrum partnerskim. Przejście wprowadza niewielkie zmiany. Przejrzyj zmiany wymienione w dokumentacji interfejsu API portalu partnerów w chmurze , aby upewnić się, że kod nadal działa po przejściu do Centrum partnerskiego. Interfejsy API CPP powinny być używane tylko dla istniejących produktów, które zostały już zintegrowane przed przejściem do Centrum partnerskiego; nowe produkty powinny używać interfejsów API przesyłania centrum partnerskiego.
Każde wywołanie interfejsów API publikowania w portalu partnerów w chmurze musi jawnie określić, która strategia kontroli współbieżności ma być używana. Nie można podać nagłówka If-Match , co spowoduje odpowiedź o błędzie HTTP 400. Oferujemy dwie strategie kontroli współbieżności.
- Optymistyczny — klient wykonujący aktualizację sprawdza, czy dane uległy zmianie od czasu ostatniego odczytania danych.
- Ostatnia wygrana — klient bezpośrednio aktualizuje dane, niezależnie od tego, czy inna aplikacja zmodyfikowała je od czasu ostatniego odczytu.
Optymistyczny przepływ pracy współbieżności
Zalecamy użycie optymistycznej strategii współbieżności z następującym przepływem pracy w celu zagwarantowania, że żadne nieoczekiwane zmiany nie zostaną wprowadzone do zasobów.
- Pobieranie jednostki przy użyciu interfejsów API. Odpowiedź zawiera wartość ETag, która identyfikuje obecnie przechowywaną wersję jednostki (w momencie odpowiedzi).
- W momencie aktualizacji uwzględnij tę samą wartość ETag w obowiązkowym nagłówku żądania If-Match .
- Interfejs API porównuje wartość ETag odebraną w żądaniu z bieżącą wartością ETag jednostki w transakcji niepodzielnej.
- Jeśli wartości ETag są inne, interfejs API zwraca
412 Precondition Failed
odpowiedź HTTP. Ten błąd wskazuje, że inny proces zaktualizował jednostkę od czasu ostatniego pobrania jednostki lub że wartość ETag określona w żądaniu jest niepoprawna. - Jeśli wartości ETag są takie same lub nagłówek If-Match zawiera symbol wieloznaczny gwiazdki (
*
), interfejs API wykonuje żądaną operację. Operacja interfejsu API aktualizuje również przechowywaną wartość ETag jednostki.
- Jeśli wartości ETag są inne, interfejs API zwraca
Uwaga
Określanie symbolu wieloznacznego (*) w nagłówku If-Match powoduje wyświetlenie interfejsu API przy użyciu strategii współbieżności Last-one-wins. W takim przypadku porównanie elementu ETag nie występuje i zasób jest aktualizowany bez żadnych kontroli.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla