Sebelum mengupgrade ke versi SDK layanan App Engine terbaru, tinjau ringkasan migrasi.
Anda dapat bermigrasi ke Cloud Tasks secara otomatis dengan mengupdate SDK layanan App Engine ke versi terbaru. Setelah Anda mengupgrade, SDK akan otomatis mengalihkan panggilan PushQueue ke API frontend Cloud Tasks untuk Anda. Cloud Tasks mempertahankan tugas dan antrean tugas yang ada, sehingga tidak diperlukan migrasi tambahan.
Di balik layar, SDK yang diperbarui menggunakan Cloud Tasks API untuk mempertahankan kesetaraan fitur dengan fitur Task Queue. SDK mendukung hal berikut:
- Pembuatan tugas batch: SDK menggunakan batch API untuk mendukung penambahan hingga 100 tugas dalam satu panggilan.
- Percobaan ulang tingkat tugas: SDK mendukung konfigurasi percobaan ulang khusus tugas.
- Tugas transaksional: SDK mengantrekan tugas dalam transaksi
Datastore. Untuk mempertahankan keandalan, buat atau ubah file
cron.yaml.
Harga dan kuota
Memigrasikan push queue ke Cloud Tasks dapat memengaruhi harga dan kuota untuk aplikasi Anda.
Harga
Tinjau harga Cloud Tasks untuk memperkirakan biaya bulanan Anda sebelum bermigrasi.
Mirip dengan Task Queue, mengirim permintaan ke aplikasi App Engine Anda dengan target push Cloud Tasks tidak dikenai biaya. Namun, tidak seperti Task Queue, Cloud Tasks mengenakan biaya untuk operasi yang dilakukan, seperti membuat, menghapus, atau mengelola tugas. Hal ini dapat menyebabkan biaya bulanan keseluruhan yang lebih tinggi dibandingkan dengan Task Queue App Engine gratis.
Kuota
Permintaan Cloud Tasks juga dihitung dalam kuota permintaan App Engine Anda.
Seperti Task Queue, Cloud Tasks memiliki kuota khusus layanan. Migrasi ke Cloud Tasks kemungkinan akan mengubah kuota Anda.
Sebelum memulai
Bagian berikut membahas pertimbangan biaya dan kuota sebelum memigrasikan push queue ke Cloud Tasks.
Pastikan Anda memiliki akses ke kode sumber App Engine.
Aktifkan Cloud Tasks dan Cloud Scheduler API:
Untuk memastikan akun layanan App Engine memiliki izin yang diperlukan agar SDK dapat mengirim tugas ke Cloud Tasks API, minta administrator untuk memberikan peran IAM Cloud Tasks Enqueuer (
roles/cloudtasks.enqueuer) pada project.
Mengupdate SDK layanan App Engine
Pastikan aplikasi Anda menggunakan SDK layanan App Engine versi terbaru.
Di
pom.xml, update SDK layanan App Engine ke versiv5.2.0-betaatau yang lebih baru.com.google.appengine appengine-api-1.0-sdk v5.2.0-beta Mengaktifkan perutean Cloud Tasks
runtime: java25 service: my-service-b env_variables: APPENGINE_USE_CLOUDTASK_PUSH_QUEUE: "true"Update dependensi App Engine SDK di
pom.xmlke versiv5.2.0-betaatau yang lebih baru.Jika aplikasi Anda menggunakan Konfigurasi XML (
appengine-web.xml):<appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <service>my-java-service-b</service> <runtime>java25</runtime> <env-variables> <env-var name="APPENGINE_USE_CLOUDTASK_PUSH_QUEUE" value="true" /> </env-variables> </appengine-web-app>Deploy aplikasi Anda:
gcloud app deployVerifikasi push queue di Cloud Tasks untuk memverifikasi bahwa aplikasi Anda menggunakan Cloud Tasks.
Mengonfigurasi tugas transaksional (opsional)
Jika aplikasi Anda mengantrekan tugas dalam transaksi Datastore, SDK akan mengandalkan cron job internal untuk memastikan bahwa tugas apa pun yang gagal diantrekan selama commit datastore pada akhirnya akan diproses.
Untuk menangani tugas transaksional push queue, buat atau update file cron.yaml untuk memanggil prosesor internal secara berkala. Contoh:
cron:
- description: "Process push queue transactional tasks"
url: /_ah/cloudtask/sweep
schedule: every 30 minutes # Change this based on the usage pattern
Tambahkan pemetaan URL di file web.xml untuk utils.servlet.SweeperServlet, atau utils.servlet.jakarta.SweeperServlet untuk runtime Java 17/21 Jakarta EE.
<servlet>
<servlet-name>cloudtask_sweep</servlet-name>
<servlet-class>com.google.apphosting.utils.servlet.SweeperServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>cloudtask_sweep</servlet-name>
<url-pattern>/_ah/cloudtask/sweep</url-pattern>
</servlet-mapping>