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 untuk membuat tugas HTTP.

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

Sebelum memulai

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

  • Anda ingin membuat tugas menggunakan RPC API atau library klien (bukan RPC 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 satu hal ini 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 tasks queues describe di terminal Anda:

    gcloud tasks queues describe QUEUE_NAME \
        --location=LOCATION

    Ganti kode berikut:

    • QUEUE_NAME: nama antrean Anda.
    • LOCATION: region tempat antrean Anda berada. Jika tidak ditentukan, dan jika ada aplikasi terkait, lokasi aplikasi App Engine project Anda akan digunakan.
  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 pemilihan rute yang sama seperti yang ditentukan di tingkat antrean: Gunakan BufferTask. Pelajari cara membuat tugas dengan metode BufferTask.
  • Tugas memiliki persyaratan pemilihan rute yang berbeda dari yang ditentukan di tingkat antrean: Tetapkan UriOverrideEnforceMode antrean ke IF_NOT_EXISTS untuk memastikan bahwa pemilihan rute tingkat antrean berlaku untuk tugas yang pemilihannya tidak ada (misalnya, tugas BufferTask), tetapi mengikuti pemilihan rute tugas yang memiliki spesifikasi pemilihan rutenya sendiri. Kemudian, gunakan CreateTask. Metode ini memungkinkan Anda menentukan setiap pemilihan rute untuk tugas. Pelajari cara membuat tugas dengan metode CreateTask.

Antrean tanpa pemilihan rute tingkat antrean

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

Memahami perutean tingkat antrean

Pemilihan rute tingkat antrean memungkinkan Anda menentukan informasi pemilihan rute default untuk tugas berdasarkan antrean tempat tugas tersebut berada. Anda dapat menentukan apakah Anda ingin pemilihan rute default hanya berlaku untuk tugas yang tidak memiliki informasi pemilihan rutenya 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

Pemilihan rute tingkat antrean berfungsi paling baik dengan arsitektur yang menggunakan satu antrean untuk setiap layanan target. Dengan model ini, Anda dapat:

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

Mengaktifkan dan menonaktifkan perilaku penggantian tingkat antrean

Setelah mengonfigurasi pemilihan rute tingkat antrean, Anda dapat memutuskan kapan pemilihan rute tersebut diterapkan dengan menetapkan UriOverrideEnforceMode antrean.

  • IF_NOT_EXISTS: Pemilihan rute tingkat antrean hanya berlaku jika tugas tidak berisi informasi pemilihan rutenya sendiri. Gunakan setelan ini jika Anda ingin antrean dapat mengirim tugas ke target yang berbeda.
  • ALWAYS: Pemilihan rute tingkat antrean selalu berlaku, meskipun tugas berisi informasi pemilihan rutenya sendiri. Setiap informasi pemilihan rute yang ditetapkan pada tingkat tugas akan diganti oleh pemilihan rute tingkat antrean. Gunakan setelan ini jika Anda ingin mewajibkan tugas dalam antrean tertentu untuk menggunakan informasi pemilihan rute yang sama.