Memilih metode pembuatan tugas Anda

Anda dapat membuat tugas HTTP menggunakan metode BufferTask atau metode CreateTask. Halaman ini memberikan panduan tentang cara memilih antara dua metode tersebut untuk membuat tugas HTTP.

Metode BufferTask memungkinkan Anda membuat tugas dengan mengirimkan permintaan HTTP ke antrean. Metode CreateTask memungkinkan Anda membuat tugas dengan membuat objek tugas. Untuk sebagian besar kasus penggunaan, pembuatan objek tugas secara eksplisit tidak diperlukan. Metode terbaik untuk membuat tugas bergantung pada apakah antrean Anda memiliki perutean tingkat antrean.

Sebelum memulai

Periksa daftar kasus penggunaan berikut untuk mengetahui apakah ada yang berlaku untuk Anda:

  • Anda ingin membuat tugas menggunakan RPC API atau library klien (bukan REST API)
  • Anda ingin membuat tugas sebagai objek tugas App Engine (bukan sebagai objek tugas yang lebih umum untuk target HTTP generik yang mungkin atau mungkin bukan target App Engine)

Jika salah satunya berlaku untuk Anda, Anda tidak perlu memilih metode pembuatan tugas karena hanya satu metode (metode CreateTask) yang didukung. Buka langsung dokumentasi CreateTask untuk jenis tugas Anda:

Memeriksa apakah antrean Anda memiliki pemilihan rute tingkat antrean

  1. Jalankan perintah gcloud CLI berikut di terminal Anda:

    gcloud tasks queues describe QUEUE_NAME

    Ganti QUEUE_NAME dengan nama antrean Anda.

  2. Pada output, cari kolom httpTarget dan periksa apakah uriOverride telah ditetapkan.

Antrean dengan perutean tingkat antrean

Untuk antrean dengan perutean tingkat antrean, metode pembuatan tugas bergantung pada persyaratan perutean tugas:

  • Tugas memiliki persyaratan perutean yang sama seperti yang ditentukan pada level antrean: Gunakan BufferTask. Pelajari cara membuat tugas dengan metode BufferTask.
  • Tugas memiliki persyaratan perutean yang berbeda dari yang ditentukan pada tingkat antrean: Tetapkan UriOverrideEnforceMode antrean ke IF_NOT_EXISTS untuk memastikan bahwa perutean tingkat antrean berlaku pada tugas yang peruteannya tidak ada (misalnya, tugas BufferTask), tetapi akan menerima perutean tugas yang memiliki spesifikasi peruteannya sendiri. Lalu gunakan CreateTask. Metode ini memungkinkan Anda menentukan pemilihan rute individual untuk tugas tersebut. Pelajari cara membuat tugas dengan metode CreateTask.

Antrean tanpa perutean tingkat antrean

Untuk antrean tanpa perutean tingkat antrean, buat tugas menggunakan metode CreateTask (atau configure perutean tingkat antrean). Metode CreateTask mencakup penentuan perutean untuk tugas yang diperlukan untuk antrean yang belum memiliki informasi perutean pada tingkat antrean. Pelajari cara membuat tugas dengan metode CreateTask.

Memahami pemilihan rute tingkat antrean

Dengan perutean level antrean, Anda dapat menentukan informasi perutean default untuk tugas berdasarkan antrean tempatnya berada. Anda dapat menentukan apakah ingin perutean default hanya berlaku untuk tugas yang tidak memiliki informasi peruteannya sendiri, atau untuk semua tugas.

Pilih pemilihan rute tingkat antrean jika Anda ingin:

  • Membuat tugas dengan permintaan HTTP standar (bukan dengan membuat objek tugas)
  • Menggunakan antrean sebagai buffer di depan layanan target

Pendekatan per target

Perutean tingkat antrean berfungsi paling baik dengan arsitektur yang menggunakan satu antrean untuk setiap layanan target. Model ini memungkinkan Anda:

  • Mengelola tugas berdasarkan targetnya (misalnya, mengalihkan sekelompok tugas jika layanan target tidak aktif)
  • Mengirim semua tugas dalam antrean ke target yang sama
  • Buat tugas tanpa menyusun objek tugas secara eksplisit dengan menggunakan metode BufferTask

Mengaktifkan dan menonaktifkan perilaku penggantian tingkat antrean

Setelah mengonfigurasi perutean tingkat antrean, Anda dapat memutuskan kapan penerapannya dengan menyetel UriOverrideEnforceMode antrean.

  • IF_NOT_EXISTS: Perutean tingkat antrean hanya berlaku jika tugas tidak berisi informasi peruteannya sendiri. Gunakan setelan ini jika Anda ingin antrean dapat mengirim tugas ke target yang berbeda.
  • ALWAYS: Perutean tingkat antrean selalu berlaku, meskipun tugas berisi informasi peruteannya sendiri. Setiap informasi {i>routing<i} yang ditetapkan pada tingkat tugas diganti oleh {i>routing<i} tingkat antrean. Gunakan setelan ini jika Anda ingin mengharuskan tugas dalam antrean tertentu untuk menggunakan informasi perutean yang sama.