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. Nilai lainnya menunjukkan bahwa tugas telah gagal dan antrean mencoba kembali tugas.
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 worker 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 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 Anda.
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 "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 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 |
Jumlah eksekusi tugas dan penerimaan respons dari handler. Karena Cloud Tasks menghapus tugas setelah respons berhasil diterima, semua respons handler sebelumnya gagal. 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 jadwal 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 dapat 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. |
Perutean target
Dalam tugas App Engine, antrean dan pengendali tugas berjalan dalam project Google Cloud yang sama. Traffic dienkripsi selama pengiriman dan tidak pernah keluar dari 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 di runtime yang didukung, URI yang dibatasi dengan login: admin
.
Karena tugas tidak dijalankan sebagai pengguna mana pun, tugas tidak dapat dikirim ke URI yang dibatasi dengan login: required
.
Pengiriman tugas juga tidak mengikuti pengalihan.
Langkah berikutnya
- Pelajari tugas lebih lanjut di referensi RPC API.
- Pelajari lebih lanjut tugas di referensi REST API.