Masalah dan batasan

Anda mungkin mengalami masalah dan batasan berikut saat menggunakan Cloud Tasks:

Urutan eksekusi

Dengan pengecualian tugas yang dijadwalkan untuk berjalan di masa mendatang, task queue sepenuhnya tidak bergantung pada urutan eksekusi. Tidak ada jaminan atau upaya terbaik yang dilakukan untuk mengeksekusi tugas dalam urutan tertentu. Khususnya: tidak ada jaminan bahwa tugas lama akan dijalankan kecuali jika antrean benar-benar kosong. Terdapat sejumlah kasus umum di mana tugas yang lebih baru dijalankan lebih cepat daripada tugas yang lebih lama, dan pola seputar tugas ini dapat berubah tanpa pemberitahuan.

Duplikasikan eksekusi

Cloud Tasks bertujuan untuk semantik "dijalankan tepat sekali" yang ketat. Namun, jika kompromi desain harus dilakukan antara eksekusi terjamin dan eksekusi duplikat, layanan akan memilih eksekusi yang terjamin. Dengan demikian, jumlah eksekusi duplikat bukan nol memang terjadi. Developer harus mengambil langkah untuk memastikan bahwa eksekusi duplikat bukan merupakan peristiwa bencana. Dalam produksi, lebih dari 99,999% tugas hanya dijalankan satu kali.

Keterbatasan sumber daya

Sumber backlog yang paling umum dalam antrean pemrosesan langsung adalah kehabisan resource pada instance target. Jika pengguna mencoba mengeksekusi 100 tugas per detik pada instance frontend yang hanya dapat memproses 10 permintaan per detik, backlog akan dibuat. Hal ini biasanya terwujud dalam salah satu dari dua cara, yang umumnya dapat diselesaikan dengan meningkatkan jumlah permintaan pemrosesan instance.

Error backoff dan tarif yang diterapkan

Server yang kelebihan beban dapat mulai menampilkan error backoff dalam bentuk kode respons HTTP 503. Cloud Tasks akan bereaksi terhadap error ini dengan memperlambat eksekusi hingga error berhenti.

Lonjakan latensi dan maksimum serentak

Server yang kelebihan beban juga dapat merespons dengan peningkatan latensi yang besar. Dalam situasi ini, permintaan tetap dibuka untuk waktu yang lebih lama. Karena antrean berjalan dengan jumlah tugas serentak maksimum, hal ini dapat menyebabkan antrean tidak dapat mengeksekusi tugas pada tingkat yang diharapkan. Meningkatkan max_concurrent_tasks untuk antrean yang terpengaruh dapat membantu dalam situasi saat nilai telah ditetapkan terlalu rendah, sehingga memperkenalkan batas kapasitas buatan. Namun, meningkatkan max_concurrent_tasks tidak mungkin akan mengurangi tekanan resource yang mendasarinya.

Meningkatkan masalah dengan tugas yang berjalan lama

Antrean Cloud Tasks meningkatkan outputnya sebagian berdasarkan jumlah tugas yang berhasil dikirim sebelumnya. Jika pengendali tugas membutuhkan waktu yang cukup lama - dalam urutan menit - untuk menyelesaikan tugas dan menampilkan respons sukses, mungkin akan ada jeda dalam tingkat peningkatan antrean.

Melihat lebih dari 5.000 tugas

Jika Anda memiliki lebih dari 5.000 tugas, beberapa tugas tidak terlihat di Konsol Google Cloud. Gunakan gcloud CLI untuk melihat semua tugas.