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
Di konsol Google Cloud, buka halaman 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.
Aktifkan Cloud Tasks API.
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.