Membuat Push Queue

Halaman ini menjelaskan cara membuat dan menyesuaikan push queue, serta cara memeriksa konten antrean.

Menggunakan file konfigurasi antrean untuk membuat antrean

Untuk memproses tugas, Anda harus menambahkannya ke push queue. App Engine menyediakan push queue default, bernama default, yang dikonfigurasi dan siap digunakan dengan setelan default. Jika mau, Anda cukup menambahkan semua tugas ke antrean default, tanpa harus membuat dan mengonfigurasi antrean lainnya.

Untuk menambahkan antrean atau mengubah konfigurasi default, edit file konfigurasi antrean untuk aplikasi Anda, yang Anda upload ke App Engine. Anda dapat membuat hingga 100 antrean. Antrean tidak dapat dibuat secara dinamis.

File konfigurasi antrean ini mendefinisikan dua antrean:

queue:
- name: queue-blue
  target: v2.task-module
  rate: 5/s

- name: queue-red
  rate: 1/s

Untuk mengupload file:

gcloud app deploy queue.yaml

Semua tugas yang ditambahkan ke queue-blue dikirim ke modul target v2.task-module. Kecepatan refresh queue-red diubah dari 5/dtk menjadi 1/dtk. Tugas akan dihapus dari antrean dan dikirim ke targetnya dengan kecepatan 1 tugas per detik.

Jika menghapus antrean, Anda harus menunggu sekitar 7 hari sebelum membuat antrean baru dengan nama yang sama.

Ada banyak parameter lain yang dapat ditambahkan ke file konfigurasi untuk menyesuaikan perilaku push queue. Untuk mengetahui informasi selengkapnya, lihat referensi file konfigurasi antrean.

Menentukan kecepatan pemrosesan push queue

Anda dapat mengontrol tingkat pemrosesan tugas di setiap antrean dengan menentukan perintah lain, seperti rate, bucket_size, dan max_concurrent_requests.

Task queue menggunakan token bucket untuk mengontrol laju eksekusi tugas. Setiap antrean bernama memiliki token bucket yang menyimpan token, hingga jumlah maksimum yang ditentukan oleh bucket_size, atau maksimum 5 token jika Anda tidak menentukan ukuran bucket.

Setiap kali aplikasi Anda menjalankan sebuah tugas, token akan dihapus dari bucket. Aplikasi Anda akan terus memproses tugas dalam antrean sampai bucket antrean kehabisan token. App Engine mengisi ulang bucket dengan token baru secara terus-menerus berdasarkan rate yang Anda tentukan untuk antrean.

Jika antrean berisi tugas yang akan diproses, dan bucket antrean berisi token, App Engine akan secara bersamaan memproses tugas sebanyak token yang ada. Hal ini dapat menyebabkan burst pemrosesan, yang menghabiskan resource sistem, dan bersaing dengan permintaan layanan pengguna.

Jika Anda ingin mencegah terlalu banyak tugas dijalankan sekaligus atau untuk mencegah pertentangan datastore, gunakan max_concurrent_requests.

Contoh berikut menunjukkan cara menetapkan max_concurrent_requests untuk membatasi tugas dan juga menunjukkan cara menyesuaikan ukuran dan kapasitas bucket berdasarkan kebutuhan aplikasi Anda dan resource yang tersedia:

queue:
- name: queue-blue
  rate: 20/s
  bucket_size: 40
  max_concurrent_requests: 10

Menetapkan batas penyimpanan untuk semua antrean

Anda dapat menggunakan file konfigurasi antrean untuk menentukan jumlah total penyimpanan yang dapat digunakan oleh data tugas pada semua antrean. Untuk menentukan batas penyimpanan total, sertakan elemen bernama total_storage_limit di tingkat atas:

# Set the total storage limit for all queues to 120MB
total_storage_limit: 120M
queue:
- name: queue-blue
  rate: 35/s

Nilainya adalah angka yang diikuti oleh unit: B untuk byte, K untuk kilobyte, M untuk megabyte, G untuk gigabyte, T untuk terabyte. Misalnya, 100K menetapkan batas 100 kilobyte. Jika penambahan tugas akan menyebabkan antrean melebihi batas penyimpanannya, panggilan untuk menambahkan tugas akan gagal. Batas default adalah 500M (500 megabyte) untuk aplikasi gratis. Untuk aplikasi yang ditagih, tidak ada batasan hingga Anda menetapkannya secara eksplisit. Anda dapat menggunakan batas ini untuk melindungi aplikasi Anda dari error pemrograman fork bomb saat setiap tugas menambahkan beberapa tugas lain selama eksekusinya.

Jika aplikasi Anda mengalami error karena kuota tidak mencukupi saat menambahkan tugas, meningkatkan total batas penyimpanan dapat membantu. Jika Anda menggunakan fitur ini, sebaiknya tetapkan batas yang sesuai dengan penyimpanan yang diperlukan untuk tugas selama beberapa hari. Hal ini memungkinkan antrean untuk sementara dicadangkan dan terus menerima tugas baru saat mengerjakan backlog sambil tetap terlindungi dari error pemrograman fork bomb.

Memantau antrean di konsol Google Cloud

  1. Di konsol Google Cloud, buka halaman Cloud Tasks.

    Buka Cloud Tasks

    Perlu diketahui bahwa jika Anda membuka halaman Task queue App Engine, akan ada petunjuk yang memandu Anda ke halaman Cloud Tasks. Update di konsol Google Cloud ini tidak mengubah fungsi Task queue.

  2. Aktifkan Cloud Tasks API.

  3. Setelah berada di halaman Cloud Tasks, Anda akan melihat daftar semua antrean dalam aplikasi. Mengklik nama antrean akan memunculkan halaman Detail Antrean, yang menampilkan semua tugas dalam antrean yang dipilih.

Langkah selanjutnya

Pelajari cara membuat tugas.