Memahami Cloud Tasks

Halaman ini menjelaskan apa yang dimaksud dengan tugas dan antrean Cloud Tasks, serta kapan dan cara menggunakannya. Cloud Tasks memungkinkan Anda memisahkan bagian pekerjaan yang dapat dilakukan secara independen, di luar alur aplikasi utama Anda, dan mengirimkannya untuk diproses secara asinkron menggunakan handler yang Anda buat. Bagian pekerjaan yang independen ini disebut tugas. Misalnya, Anda perlu memperbarui database sebagai bagian dari pemrosesan permintaan pengguna, tetapi pembaruan dapat memakan waktu. Menurunkan detail tersebut sebagai tugas memungkinkan Anda kembali dari permintaan lebih cepat.

Tugas yang di-offload ditambahkan ke antrean, yang mempertahankan tugas hingga berhasil dieksekusi. Berdasarkan konfigurasi awal Anda, antrean juga dapat bertindak sebagai kontrol alur pengiriman. Anda membuat dan mengonfigurasi antrean yang kemudian dikelola oleh layanan Cloud Tasks. Setelah tugas ditambahkan, antrean akan mengirimkannya dan memastikan tugas tersebut diproses secara andal oleh pekerja Anda. Kompleksitas yang terkait dengan proses tersebut, seperti biaya latensi yang dihadapi pengguna, error server, batasan konsumsi resource, dan pengelolaan percobaan ulang, ditangani oleh layanan.

Cloud Tasks dirancang untuk memberikan pengiriman "setidaknya sekali"; yaitu, jika tugas berhasil ditambahkan, antrean akan mengirimkannya setidaknya sekali. Dalam beberapa situasi yang jarang terjadi, beberapa tugas dapat dieksekusi, sehingga kode Anda harus memastikan tidak ada efek samping yang berbahaya dari eksekusi berulang. Handler Anda harus idempoten.

Tugas itu sendiri terdiri dari nama dan informasi konfigurasi yang unik dan, secara opsional, data apa pun dari permintaan awal, yang disebut payload, yang diperlukan untuk memproses permintaan. Karena payload dikirim dalam isi permintaan, tugas yang menyertakan payload harus menggunakan POST atau PUT sebagai metode HTTP-nya.

Untuk mengakses layanan Cloud Tasks menggunakan Cloud Tasks API , Anda harus memiliki Google Cloud project.

Fitur

Dengan Cloud Tasks, Anda dapat mengirim item pekerjaan asinkron dengan kontrol berikut:

  • Menjadwalkan waktu pengiriman tertentu
  • Mengelola rasio penayangan
  • Mengonfigurasi perilaku percobaan ulang
  • Mengakses dan mengelola tugas individual dalam antrean
  • Mengaktifkan penghapusan duplikat tugas

Alur kerja umum

Alur kerja umumnya adalah sebagai berikut:

  1. Anda membuat pekerja untuk memproses tugas.
  2. Anda membuat antrean.
  3. Anda membuat tugas secara terprogram dan menambahkannya ke antrean.
  4. Layanan Cloud Tasks menampilkan OK ke aplikasi asal. Hal ini menunjukkan bahwa tugas telah berhasil ditulis ke penyimpanan Cloud Tasks, sehingga permintaan tugas pembuatan sangat tersedia dan tahan lama.
  5. Tugas diteruskan ke pekerja.
  6. Worker memproses tugas.
  7. Untuk menyelesaikan urutan, pekerja menampilkan kode status berhasil 2xx ke layanan Cloud Tasks.

Setelah tugas diserahkan ke antrean, tidak ada data yang tersedia untuk permintaan awal.

Kasus penggunaan

Kasus penggunaan umum meliputi hal berikut:

  • Mempercepat waktu respons pengguna dengan mendelegasikan operasi latar belakang yang berpotensi lambat seperti update database ke pekerja
  • Mempertahankan permintaan dalam konteks insiden produksi yang tidak terduga
  • Membantu memperlancar lonjakan traffic dengan menghapus tugas yang tidak ditampilkan kepada pengguna dari alur pengguna utama
  • Mengelola tarif panggilan API pihak ketiga

Antrean Cloud Tasks dengan target HTTP

Dalam kasus Target HTTP generik, layanan Cloud Tasks meneruskan permintaan tugas ke pekerja, yang berada di endpoint HTTP generik mana pun, berdasarkan cara tugas dikonfigurasi. Endpoint ini dapat berada di fungsi Cloud Run, Cloud Run, GKE, Compute Engine, atau bahkan server web lokal, berdasarkan cara tugas dikonfigurasi. Antrean ini mengirim permintaan dengan kecepatan yang andal dan dapat dikonfigurasi. Tugas ini memastikan eksekusi tugas yang andal; setelah berhasil, semua pekerja harus mengirim kode respons HTTP (200-299) ke layanan Cloud Tasks sebelum batas waktu tunggu default 10 menit, dengan maksimum 30 menit. Jika respons yang berbeda dikirim, atau tidak ada respons, tugas akan dicoba lagi.

Antrean berbasis HTTP

Target harus mengelola penskalaan pekerja dan membersihkan tugas setelah selesai.

Jika target Anda memerlukan autentikasi, Anda harus menyiapkan dua akun layanan, satu untuk aplikasi, klien, dan satu untuk antrean itu sendiri. Kedua akun harus telah diberi izin yang diperlukan, dan ID untuk akun layanan klien harus disertakan dalam permintaan tugas. Lihat Membuat tugas Target HTTP untuk mengetahui informasi selengkapnya.

Antrean Cloud Tasks dengan target App Engine

Cloud Tasks kompatibel dengan lingkungan App Engine berikut:

  • Runtime generasi kedua lingkungan standar App Engine
  • Lingkungan fleksibel App Engine

Pengguna runtime generasi pertama App Engine yang menggunakan Task Queue API dapat bermigrasi ke Cloud Tasks. Untuk mempelajari caranya, lihat artikel Bermigrasi dari paket layanan lama. Pengguna runtime generasi pertama App Engine yang tidak menggunakan layanan tugas paket dapat mengupgrade ke runtime generasi kedua untuk menggunakan Cloud Tasks.

Dalam kasus target App Engine, layanan Cloud Tasks juga meneruskan permintaan tugas ke pengendali, tetapi pekerja ini berada dalam App Engine. Jadi, semua antrean yang menargetkan handler App Engine harus memiliki aplikasi App Engine. Handler harus berjalan di region tempat aplikasi App Engine berjalan. Region ini juga berfungsi sebagai parameter LOCATION_ID untuk permintaan Cloud Tasks Anda.

Tugas dirutekan berdasarkan cara tugas (atau, lebih jarang, antrean itu sendiri) dikonfigurasi. Antrean mengirim permintaan dengan kecepatan yang andal dan dapat dikonfigurasi. Layanan ini menjamin eksekusi tugas yang andal - setelah berhasil, semua pekerja harus mengirim kode respons HTTP (200-299) ke layanan Cloud Tasks, dalam hal ini sebelum batas waktu berdasarkan jenis penskalaan instance layanan: 10 menit untuk penskalaan otomatis atau hingga 24 jam untuk penskalaan manual. Jika respons yang berbeda dikirim, atau tidak ada respons, tugas akan dicoba lagi.

Antrean berbasis App Engine

Karena handler adalah bagian dari App Engine, layanan Cloud Tasks itu sendiri dapat melakukan sebagian besar pengelolaan proses untuk tugas, menskalakan pekerja naik dan turun terkait dengan traffic, serta menghapus tugas saat selesai.

Wilayah yang didukung menurut target

Jika target Anda adalah endpoint HTTP/S, Cloud Tasks tersedia di semua region yang didukung Google Cloud untuk Cloud Tasks.

Jika target Anda adalah aplikasi App Engine yang berada dalam project saat ini:

  • Tugas yang menargetkan App Engine hanya dapat dibuat di region App Engine project.

  • Project Google Cloud hanya dapat berisi satu aplikasi App Engine, dan region tempat aplikasi App Engine berada tidak dapat diubah setelah aplikasi dibuat.

  • App Engine bersifat regional, yang berarti infrastruktur yang menjalankan aplikasi Anda terletak di region tertentu. Jika Anda ingin mendistribusikan komputasi dan antrean di beberapa region, Anda harus menargetkan endpoint HTTP/S.

  • Jika Anda tidak menggunakan App Engine sebagai target, Anda tidak perlu men-deploy aplikasi App Engine, dan Anda dapat menonaktifkan aplikasi App Engine yang ada.

Istilah utama

Istilah berikut menjelaskan kemampuan utama Cloud Tasks.

Istilah Definisi
antrean Sekumpulan tugas dengan jenis target yang sama yang dikelola oleh satu konfigurasi.
jenis target Tempat dan cara tugas diproses.
pekerja Layanan yang memproses tugas.
percobaan Upaya untuk menjalankan tugas.
coba kirim Waktu saat Cloud Tasks telah mengirimkan tugas ke targetnya.
respons upaya Respons dari pekerja yang menunjukkan bahwa pekerjaan yang terkait dengan tugas berhasil atau gagal.
coba lagi Beberapa upaya untuk menjalankan tugas. Jumlah percobaan ulang ditetapkan menggunakan parameter percobaan ulang.
batas kapasitas Batas frekuensi untuk antrean.

Kemampuan observasi

Anda dapat memantau dan menganalisis aktivitas dan pertumbuhan Cloud Tasks dengan menggunakan alat pemantauan, logging, dan diagnostik yang disediakan oleh Google Cloud Observability. Untuk mengetahui informasi selengkapnya, lihat Kemampuan observasi di Cloud Tasks.