Halaman ini menunjukkan cara membuat pengendali tugas App Engine, kode pekerja yang menangani tugas App Engine. Antrean Cloud Tasks mengirim permintaan HTTP ke pengendali tugas Anda. Setelah berhasil menyelesaikan pemrosesan, pengendali harus mengirim kode status HTTP antara 200
dan 299
kembali ke antrean. Jika nilai berupa nilai lainnya, tugas gagal dan antrean akan
mencoba ulang 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#
Python
Java
PHP
Go
Node.js
Ruby
Waktu tunggu
Tugas App Engine memiliki waktu tunggu tertentu yang bergantung pada jenis penskalaan dari layanan yang menjalankannya.
Untuk layanan pekerja yang berjalan di lingkungan standar:
- Penskalaan otomatis: pemrosesan tugas harus selesai dalam 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 melewati batas waktu, antrean akan menganggap tugas 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 Anda.
Header ini ditetapkan secara internal. Jika salah satu header ini ada dalam permintaan pengguna eksternal untuk aplikasi Anda, header tersebut akan diganti dengan header internal — kecuali untuk permintaan dari administrator aplikasi yang login, yang diizinkan untuk menyetel header untuk tujuan pengujian.
Permintaan tugas App Engine selalu berisi header berikut:
Header | Deskripsi |
---|---|
X-AppEngine-QueueName |
Nama antrean. |
X-AppEngine-TaskName |
Nama "singkat" 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 tugas dicoba lagi. 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 dijalankan dan menerima respons dari pengendali. Karena Cloud Tasks menghapus tugas setelah respons yang 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 diupdate sebelum eksekusi dicoba. |
X-AppEngine-TaskETA |
Waktu jadwal tugas, yang ditentukan dalam detik sejak 1 Januari 1970. |
Jika pengendali permintaan Anda menemukan salah satu header yang tercantum di atas, pengendali permintaan dapat memercayai 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 transmisi 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 yang dibatasi dengan
login: admin
.
Karena tugas tidak dijalankan sebagai pengguna, tugas tersebut tidak dapat dikirim ke URI
yang dibatasi dengan login: required
.
Pengiriman tugas juga tidak mengikuti pengalihan.
Langkah selanjutnya
- Pelajari lebih lanjut tugas di referensi RPC API.
- Pelajari lebih lanjut tentang tugas-tugas di referensi REST API.