Mengonfigurasi perutean, batas, dan percobaan ulang antrean

Anda dapat mengonfigurasi antrean Cloud Tasks saat membuat antrean atau kapan saja setelahnya. Konfigurasi ini diterapkan ke semua tugas dalam antrean tersebut.

Ada tiga aspek dasar untuk mengonfigurasi antrean Anda:

Mengonfigurasi pemilihan rute tingkat antrean

Mengonfigurasi pemilihan rute di tingkat antrean akan menggantikan pemilihan rute yang ditetapkan di tingkat tugas. Hal ini berguna jika Anda ingin menggunakan Cloud Tasks sebagai buffer di depan layanan target, atau jika Anda perlu mengubah pemilihan rute untuk semua tugas dalam antrean.

Pemilihan rute tingkat antrean berlaku untuk:

  • Tugas yang ada dalam antrean
  • Tugas yang ditambahkan ke antrean setelah pemilihan rute tingkat antrean ditetapkan

Batasan

Pemilihan rute tingkat antrean tidak kompatibel dengan kunci enkripsi yang dikelola pelanggan (CMEK) Cloud Key Management Service (Cloud KMS). Jika CMEK diaktifkan, Anda tidak dapat melakukan hal berikut:

  • Membuat tugas di antrean yang memiliki pemilihan rute tingkat antrean
  • Menerapkan pemilihan rute tingkat antrean

Mengonfigurasi pemilihan rute tingkat antrean untuk tugas HTTP

Anda dapat mengonfigurasi antrean untuk mengganti pemilihan rute tingkat tugas saat membuat antrean atau saat memperbarui antrean. Untuk mengonfigurasi pemilihan rute tingkat antrean, tetapkan parameter antrean uriOverride ke rute pilihan Anda.

Jika Anda menerapkan pemilihan rute tingkat antrean sebagai pembaruan ke antrean yang ada, jeda antrean sebelum menerapkan perubahan dan tunggu satu menit setelah menerapkan perubahan untuk melanjutkan antrean.

  1. Jeda antrean dengan menjalankan perintah berikut:

      gcloud tasks queues pause QUEUE_ID
      

    Ganti QUEUE_ID dengan ID antrean Anda.

  2. Perbarui atau hapus pemilihan rute tingkat antrean.

    • Untuk memperbarui pemilihan rute tingkat antrean, tetapkan uriOverride parameter ke rute yang diperbarui.

    • Untuk menghapus pemilihan rute tingkat antrean menggunakan REST atau RPC API:

      • REST API: Kirim permintaan patch untuk antrean dengan payload kosong dan parameter updateMask ditetapkan ke httpTarget.

      • RPC API: Kirim updateQueueRequest untuk antrean dengan payload kosong dan parameter update_mask ditetapkan ke http_target.

    Contoh berikut menggunakan REST API untuk memperbarui host yang dirutekan ke tugas:

    curl -X PATCH -d @- -i \
      -H "Authorization: Bearer ACCESS_TOKEN" \
      -H "Content-Type: application/json" \
      "https://cloudtasks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/queues/QUEUE_ID?updateMask=httpTarget.uriOverride" << EOF
    {
      "httpTarget": {"uriOverride":{"host":"NEW_HOST"}}
    }
    EOF
    

    Ganti kode berikut:

    • ACCESS_TOKEN: token akses Anda. Anda bisa mendapatkannya dengan menjalankan perintah berikut di terminal:

      gcloud auth application-default login
      gcloud auth application-default print-access-token
    • PROJECT_ID: ID project Anda. Google Cloud Anda bisa mendapatkannya dengan menjalankan perintah berikut di terminal:

      gcloud config get-value project

    • LOCATION: lokasi antrean Anda.

    • NEW_HOST: host baru yang ingin Anda rutekan ke antrean.

  3. Tunggu satu menit.

    Konfigurasi baru dapat memerlukan waktu hingga satu menit untuk diterapkan. Menunggu untuk melanjutkan antrean membantu mencegah tugas dikirim dengan konfigurasi lama.

  4. Lanjutkan antrean dengan menjalankan perintah berikut:

    gcloud tasks queues resume QUEUE_ID

Mengonfigurasi pemilihan rute tingkat antrean untuk tugas App Engine

Untuk mengonfigurasi pemilihan rute tingkat antrean untuk tugas App Engine, tetapkan parameter appEngineRoutingOverride antrean ke layanan dan versi App Engine pilihan Anda.

  1. Siapkan pemilihan rute tingkat antrean dan ganti pemilihan rute tingkat tugas:

    gcloud tasks queues update QUEUE_ID \
        --routing-override=service:SERVICE,version:VERSION

    Ganti kode berikut:

    • QUEUE_ID: ID antrean (nama pendeknya).
    • SERVICE: layanan pekerja App Engine yang bertanggung jawab untuk penanganan tugas.
    • VERSION: versi aplikasi.

    Misalnya, jika Anda menyiapkan layanan pekerja untuk menangani semua tugas dalam antrean, Anda dapat merutekan ke layanan tersebut dan versi default:

    gcloud tasks queues update QUEUE_ID \
        --routing-override=service:SERVICE
  2. Verifikasi bahwa antrean Anda berhasil dikonfigurasi dengan menjalankan perintah berikut:

    gcloud tasks queues describe QUEUE_ID --location=LOCATION

    Ganti LOCATION dengan lokasi antrean.

    Outputnya akan mirip dengan berikut ini:

    appEngineRoutingOverride:
      host: SERVICE.PROJECT_ID.appspot.com
      service: SERVICE
    name: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID
    rateLimits:
      maxBurstSize: 100
      maxConcurrentDispatches: 1000
      maxDispatchesPerSecond: 500.0
    retryConfig:
      maxAttempts: 100
      maxBackoff: 3600s
      maxDoublings: 16
      minBackoff: 0.100s
    state: RUNNING
  3. Untuk menghapus pemilihan rute tingkat antrean, jalankan perintah berikut:

    gcloud tasks queues update QUEUE_ID \
        --clear-routing-override

    Saat pemilihan rute tingkat antrean dihapus, pemilihan rute tingkat tugas akan diterapkan ke tugas dalam antrean dan tugas yang ditambahkan ke antrean di masa mendatang.

Menentukan batas kapasitas

Batas kapasitas menentukan kecepatan maksimum tugas yang dapat dikirim oleh antrean, terlepas dari apakah pengiriman adalah upaya tugas pertama atau percobaan ulang.

  1. Tetapkan kecepatan maksimum dan jumlah tugas serentak yang dapat dikirim oleh antrean dengan menjalankan perintah berikut:

    gcloud tasks queues update QUEUE_ID \
        --max-dispatches-per-second=DISPATCH_RATE \
        --max-concurrent-dispatches=MAX_CONCURRENT_DISPATCHES

    Ganti kode berikut:

    • QUEUE_ID: ID antrean (nama pendeknya).
    • DISPATCH_RATE: kecepatan pengiriman. Ini adalah kecepatan token dalam bucket yang diperbarui. Dalam kondisi di mana ada aliran tugas yang relatif stabil, hal ini setara dengan kecepatan tugas yang dikirim.
    • MAX_CONCURRENT_DISPATCHES: jumlah maksimum tugas dalam antrean yang dapat dijalankan sekaligus.

    Misalnya, jika Anda membuat antrean tanpa menetapkan parameter apa pun, Anda dapat memperbarui jumlah maksimum tugas serentak dengan menjalankan perintah berikut:

    gcloud tasks queues update QUEUE_ID \
        --max-concurrent-dispatches=MAX_CONCURRENT_DISPATCHES
  2. Verifikasi bahwa antrean Anda berhasil dikonfigurasi dengan menjalankan perintah berikut:

    gcloud tasks queues describe QUEUE_ID --location=LOCATION

    Ganti LOCATION dengan lokasi antrean.

    Outputnya akan mirip dengan berikut ini:

    name: projects/