Udostępnij za pośrednictwem


Kontrola współbieżności

Uwaga

Interfejsy API portalu Cloud Partner Portal 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 Cloud Partner Portal, aby upewnić się, że kod będzie 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 w Centrum partnerskim.

Każde wywołanie interfejsów API publikowania portalu Cloud Partner Portal musi jawnie określić, która strategia kontroli współbieżności ma być używana. Nie można podać nagłówka If-Match spowoduje wystąpienie błędu HTTP 400. Oferujemy dwie strategie kontroli współbieżności.

  • Optymistyczne — klient wykonujący aktualizację sprawdza, czy dane uległy zmianie od czasu ostatniego odczytu 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, aby zagwarantować, że żadne nieoczekiwane zmiany nie zostaną wprowadzone w zasobach.

  1. Pobieranie jednostki przy użyciu interfejsów API. Odpowiedź zawiera wartość ETag, która identyfikuje obecnie przechowywaną wersję jednostki (w momencie odpowiedzi).
  2. W momencie aktualizacji dołącz tę samą wartość elementu ETag do obowiązkowego nagłówka żądania If-Match .
  3. Interfejs API porównuje wartość ETag odebraną w żądaniu z bieżącą wartością ETag jednostki w transakcji niepodzielnej.
    • Jeśli wartości elementu ETag są inne, interfejs API zwraca 412 Precondition Failed odpowiedź HTTP. Ten błąd wskazuje, że inny proces zaktualizował jednostkę od czasu ostatniego pobrania przez klienta lub że wartość elementu ETag określona w żądaniu jest niepoprawna.
    • Jeśli wartości elementu 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ść elementu ETag jednostki.

Uwaga

Określenie 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.