Halaman ini menjelaskan cara menggunakan Deferred API, salah satu layanan paket versi lama, dengan runtime Python 3 untuk lingkungan standar. Aplikasi Anda dapat mengakses layanan yang dipaketkan melalui SDK layanan App Engine untuk Python 3.
Ringkasan
Sebelumnya, paket Deferred google.appengine.ext.deferred
bergantung pada framework webapp di Python 2. Karena framework webapp telah
dihapus di SDK layanan App Engine untuk Python 3, Anda perlu
melakukan beberapa perubahan saat mengupgrade aplikasi Python 2 ke Python 3.
Mengaktifkan Deferred API
Untuk mengaktifkan Deferred API untuk Python 3, Anda tidak perlu lagi menetapkan
builtins.deferred
ke on
dalam file app.yaml
. Sebagai gantinya, untuk mengaktifkan API, Anda harus meneruskan
use_deferred=True
dalam panggilan ke wrap_wsgi_app()
.
Kesamaan dan perbedaan
Secara default, Deferred API untuk Python 3 menggunakan /_ah/queue/deferred
URL yang sama
dan antrean default yang sama
seperti di Python 2. Perlu diperhatikan bahwa untuk aplikasi yang bermigrasi ke Cloud Tasks, antrean default
tidak dibuat secara otomatis
dan library tugas yang ditangguhkan tidak tersedia.
Jika aplikasi Anda menggunakan endpoint /_ah/queue/deferred
default, penggunaan
deferred.defer()
di Python 3
tetap sama dengan
Python 2.
Jika aplikasi Anda menggunakan URL kustom untuk eksekusi tugas yang ditangguhkan, Anda harus membuat
beberapa perubahan karena class TaskHandler
dalam modul deferred
untuk Python 2
telah dihapus di versi Python 3 API ini.
Untuk menetapkan URL kustom bagi eksekusi tugas yang ditangguhkan, aplikasi dapat
mengganti post
ataurun_from_request
dalam
class deferred.Handler
(sebelumnyadeferred.TaskHandler
di Python 2), lalu meneruskan parameter environ
yang mewakili kamus yang berisi parameter permintaan WSGI. Metode post
kemudian dapat
dipanggil dari endpoint kustom (seperti yang ditunjukkan dalam contoh Python 3).
Penggunaan menyeluruh Python 3 Deferred API, seperti pemilihan rute permintaan dan
mengakses kamus environ
,
bergantung pada framework web tempat aplikasi dimigrasikan menjadi sasaran. Bandingkan perubahan kode yang dibuat
dari contoh Python 2 dengan contoh Python 3 di bagian berikut.
Contoh Python 3
Contoh berikut menunjukkan cara mengeksekusi tugas yang ditangguhkan menggunakan endpoint default dan endpoint kustom di aplikasi Flask dan aplikasi Django.
Flask
Django
Tanpa framework
Contoh kode
Untuk melihat contoh kode lengkap dari panduan ini, lihat GitHub.