Egyidejűség-vezérlés
Feljegyzés
A Cloud Partner Portal API-k integrálva vannak a Partnerközpontban, és továbbra is működni fognak. Az áttűnés kis változásokat vezet be. Tekintse át a Cloud Partner Portal API-referenciájában felsorolt módosításokat, hogy a kód továbbra is működjön a Partnerközpontra való áttérés után. A CPP API-kat csak olyan meglévő termékekhez szabad használni, amelyek már integrálva voltak a Partnerközpontra való áttérés előtt; az új termékeknek a Partnerközpont beküldési API-jait kell használniuk.
A Felhőpartner portál közzétételi API-inak minden hívásának explicit módon meg kell adnia, hogy melyik egyidejűségi vezérlési stratégiát kell használnia. Az If-Match fejléc megadásának elmulasztása HTTP 400 hibaválaszt eredményez. Két stratégiát kínálunk az egyidejűség-vezérléshez.
- Optimista – A frissítést végrehajtó ügyfél ellenőrzi, hogy az adatok megváltoztak-e az adatok legutóbbi olvasása óta.
- Az utolsó nyer – Az ügyfél közvetlenül frissíti az adatokat, függetlenül attól, hogy egy másik alkalmazás módosította-e azokat az utolsó olvasási idő óta.
Optimista egyidejűségi munkafolyamat
Javasoljuk, hogy az optimista egyidejűségi stratégiát használja az alábbi munkafolyamattal annak érdekében, hogy ne végezzenek váratlan módosításokat az erőforrásokon.
- Entitás lekérése az API-k használatával. A válasz tartalmaz egy ETag-értéket, amely azonosítja az entitás aktuálisan tárolt verzióját (a válasz időpontjában).
- A frissítéskor adja meg ugyanezt az ETag-értéket a kötelező If-Match kérelem fejlécében.
- Az API összehasonlítja a kérelemben kapott ETag értéket az entitás aktuális ETag-értékével egy atomi tranzakcióban.
- Ha az ETag-értékek eltérnek, az API HTTP-választ ad
412 Precondition Failed
vissza. Ez a hiba azt jelzi, hogy vagy egy másik folyamat frissítette az entitást az ügyfél legutóbbi lekérése óta, vagy a kérelemben megadott ETag-érték helytelen. - Ha az ETag értéke megegyezik, vagy az If-Match fejléc a helyettesítő csillag karaktert (
*
) tartalmazza, az API végrehajtja a kért műveletet. Az API-művelet az entitás tárolt ETag-értékét is frissíti.
- Ha az ETag-értékek eltérnek, az API HTTP-választ ad
Feljegyzés
Ha a helyettesítő karaktert (*) adja meg az If-Match fejlécben, az API a Last-one-wins egyidejűségi stratégiát használja. Ebben az esetben az ETag-összehasonlítás nem történik meg, és az erőforrás ellenőrzés nélkül frissül.