Bagikan melalui


Tunggu

BERLAKU UNTUK: Semua tingkatAN API Management

Kebijakan wait menjalankan kebijakan turunan langsungnya secara paralel, dan menunggu salah satu atau semua kebijakan turunan langsungnya selesai sebelum selesai. Kebijakan wait dapat memiliki sebagai kebijakan turunan langsungnya satu atau beberapa kebijakan berikut: send-request, cache-lookup-value, dan choose .

Catatan

Tetapkan elemen kebijakan dan elemen turunan dalam urutan yang disediakan dalam pernyataan kebijakan. Pelajari lebih lanjut cara mengatur atau mengedit kebijakan API Management.

Pernyataan kebijakan

<wait for="all | any">
  <!--Wait policy can contain send-request, cache-lookup-value,
        and choose policies as child elements -->
</wait>

Atribut

Atribut Deskripsi Wajib diisi Default
untuk Menentukan apakah kebijakan wait menunggu hingga semua kebijakan turunan segera diselesaikan atau hanya satu. Nilai yang diperbolehkan adalah:

- all - tunggu hingga semua kebijakan turunan segera selesai
- any - tunggu hingga kebijakan turunan segera selesai. Setelah kebijakan turunan langsung pertama diselesaikan, kebijakan wait selesai dan eksekusi semua kebijakan turunan langsung lainnya dihentikan.

Ekspresi kebijakan diizinkan.
No all

Elemen

Bisa berisi hanya kebijakan send-request, cache-lookup-value, dan choose sebagai elemen turunan.

Penggunaan

Contoh

Dalam contoh berikut, ada dua kebijakan choose sebagai kebijakan turunan langsung kebijakan wait. Masing-masing dari kebijakan choose ini dijalankan secara paralel. Setiap kebijakan choose mencoba mengambil nilai yang disimpan dalam cache. Jika ada cache yang terlewat, layanan backend dipanggil untuk memberikan nilainya. Dalam contoh ini, kebijakan wait tidak selesai hingga semua kebijakan turunan langsungnya selesai, karena atribut for disetel ke all. Dalam contoh ini, variabel konteks (execute-branch-one, value-one, execute-branch-two, dan value-two) dideklarasikan di luar cakupan contoh kebijakan ini.

<wait for="all">
  <choose>
    <when condition="@((bool)context.Variables["execute-branch-one="])">
      <cache-lookup-value key="key-one" variable-name="value-one" />
      <choose>
        <when condition="@(!context.Variables.ContainsKey("value-one="))">
          <send-request mode="new" response-variable-name="value-one">
            <set-url>https://backend-one</set-url>
            <set-method>GET</set-method>
          </send-request>
        </when>
      </choose>
    </when>
  </choose>
  <choose>
    <when condition="@((bool)context.Variables["execute-branch-two="])">
      <cache-lookup-value key="key-two" variable-name="value-two" />
      <choose>
        <when condition="@(!context.Variables.ContainsKey("value-two="))">
          <send-request mode="new" response-variable-name="value-two">
            <set-url>https://backend-two</set-url>
            <set-method>GET</set-method>
          </send-request>
        </when>
      </choose>
    </when>
  </choose>
</wait>

Untuk informasi selengkapnya tentang bekerja dengan kebijakan, lihat: