Halaman ini menunjukkan cara membuat pengendali tugas App Engine, yaitu kode pekerja yang menangani tugas App Engine. Antrean Cloud Tasks mengirim permintaan HTTP ke pengendali tugas Anda. Setelah pemrosesan berhasil diselesaikan, pengendali harus mengirim kode status HTTP antara 200
dan 299
kembali ke antrean. Nilai lainnya menunjukkan bahwa tugas telah gagal dan antrean mencoba lagi tugas tersebut.
Permintaan Task Queue App Engine dikirim dari alamat IP 0.1.0.2
.
Lihat juga rentang IP untuk permintaan yang dikirim ke lingkungan App Engine.
C#
Go
Java
Node.js
PHP
Python
Ruby
Waktu tunggu
Tugas App Engine memiliki waktu tunggu tertentu yang bergantung pada jenis penskalaan layanan yang menjalankannya.
Untuk layanan pekerja yang berjalan di lingkungan standar:
- Penskalaan otomatis: pemrosesan tugas harus selesai dalam waktu 10 menit.
- Penskalaan manual dan dasar: permintaan dapat berjalan hingga 24 jam.
Untuk layanan pekerja yang berjalan di lingkungan fleksibel: semua jenis memiliki waktu tunggu 60 menit.
Jika pengendali Anda melewatkan batas waktu, antrean akan menganggap tugas tersebut gagal dan mencobanya lagi.
Membaca header permintaan tugas App Engine
Permintaan yang dikirim ke pengendali App Engine oleh antrean Cloud Tasks memiliki header khusus, yang berisi informasi khusus tugas yang mungkin ingin digunakan pengendali.
Header ini ditetapkan secara internal. Jika ada header ini dalam permintaan pengguna eksternal ke aplikasi Anda, header tersebut akan diganti dengan header internal — kecuali untuk permintaan dari administrator aplikasi yang login, yang diizinkan menetapkan header untuk tujuan pengujian.
Permintaan tugas App Engine selalu berisi header berikut:
Header | Deskripsi |
---|---|
X-AppEngine-QueueName |
Nama antrean. |
X-AppEngine-TaskName |
Nama "pendek" tugas, atau, jika tidak ada nama yang ditentukan saat pembuatan, ID unik yang dihasilkan sistem. Ini adalah nilai my-task-id dalam nama tugas lengkap; misalnya, task_name = projects/my-project-id/locations/my-location/queues/my-queue-id/tasks/my-task-id . |
X-AppEngine-TaskRetryCount |
Frekuensi percobaan ulang tugas. Untuk upaya pertama, nilainya adalah 0 . Jumlah ini mencakup upaya saat tugas gagal karena kurangnya instance yang tersedia dan tidak pernah mencapai fase eksekusi. |
X-AppEngine-TaskExecutionCount |
Frekuensi tugas dieksekusi dan menerima respons dari pengendali. Karena Cloud Tasks menghapus tugas setelah respons berhasil diterima, semua respons pengendali sebelumnya adalah kegagalan. Jumlah ini tidak mencakup kegagalan karena kurangnya instance yang tersedia. Perhatikan bahwa X-AppEngine-TaskExecutionCount dapat sama dengan X-AppEngine-TaskRetryCount jika diperbarui sebelum eksekusi dicoba. |
X-AppEngine-TaskETA |
Waktu penjadwalan tugas, ditentukan dalam detik sejak 1 Januari 1970. |
Jika pengendali permintaan Anda menemukan salah satu header yang tercantum sebelumnya, pengendali dapat mengasumsikan bahwa permintaan tersebut adalah permintaan Cloud Tasks.
Selain itu, permintaan dari Cloud Tasks mungkin berisi header berikut:
Header | Deskripsi |
---|---|
X-AppEngine-TaskPreviousResponse |
Kode respons HTTP dari percobaan ulang sebelumnya. |
X-AppEngine-TaskRetryReason |
Alasan percobaan ulang tugas. |
X-AppEngine-FailFast |
Menunjukkan bahwa tugas akan langsung gagal jika instance yang ada tidak tersedia. |
Pemilihan rute target
Dalam tugas App Engine, antrean dan pengendali tugas berjalan dalam project Google Cloud yang sama. Traffic dienkripsi selama pengiriman dan tidak pernah meninggalkan pusat data Google. Anda tidak dapat menetapkan protokol secara eksplisit (misalnya, HTTP atau HTTPS). Namun, permintaan ke pengendali akan tampak telah menggunakan protokol HTTP.
Tugas dapat dikirim ke pengendali tugas yang aman, pengendali tugas yang tidak aman, dan dalam
runtime yang didukung, URI dibatasi dengan
login: admin
.
Karena tidak dijalankan sebagai pengguna mana pun, tugas tidak dapat dikirim ke URI
yang dibatasi dengan login: required
.
Pengiriman tugas juga tidak mengikuti pengalihan.
Langkah selanjutnya
- Pelajari tugas lebih lanjut di referensi RPC API.
- Pelajari tugas lebih lanjut di referensi REST API.