Menggunakan Pull Queue di Python 2

Halaman ini menyediakan ringkasan pull queue di lingkungan standar App Engine.

Dalam push queue, tugas dikirim ke layanan worker berdasarkan konfigurasi antrean. Dalam pull queue, layanan worker harus meminta antrean tugas. Antrean merespons dengan mengizinkan akses unik pekerja tersebut untuk memproses tugas selama jangka waktu tertentu, yang disebut lease.

Aplikasi mengalihkan tugas ke layanan task queue, lalu worker menyewanya dari layanan task queue

Dengan menggunakan pull queue, Anda juga dapat mengelompokkan tugas terkait menggunakan tag, lalu mengonfigurasi worker Anda untuk menarik beberapa tugas dengan tag tertentu sekaligus. Proses ini disebut batching.

Jika worker tidak dapat memproses tugas sebelum masa lease berakhir, worker dapat memperpanjang lease atau membiarkannya berakhir, sehingga worker lain dapat memperolehnya. Setelah tugas yang terkait dengan tugas selesai, worker harus menghapusnya.

Penggunaan pull queue mengharuskan kode Anda menangani beberapa fungsi yang diotomatiskan dalam push queue:

Menskalakan worker Anda
Kode Anda perlu menskalakan jumlah worker berdasarkan volume pemrosesan. Jika kode Anda tidak menangani penskalaan, Anda berisiko membuang resource komputasi jika tidak ada tugas yang harus diproses; Anda juga berisiko berlatensi jika terlalu banyak tugas untuk diproses.
Menghapus tugas
Kode Anda juga harus menghapus tugas secara eksplisit setelah diproses. Dalam push queue, App Engine menghapus tugas untuk Anda. Jika worker Anda tidak menghapus tugas pull queue setelah pemrosesan selesai, worker lain akan memproses ulang tugas tersebut. Hal ini memboroskan resource komputasi dan menimbulkan error jika tugas tidak idempoten.

Pull queue di lingkungan standar App Engine dibuat dengan menetapkan properti dalam file konfigurasi bernama queue.yaml.

Alur kerja pull queue

Worker yang memproses tugas dari pull queue harus ditentukan dalam layanan yang berjalan di lingkungan standar App Engine.

Alur kerjanya adalah sebagai berikut:

  1. Anda membuat pull queue menggunakan queue.yaml.
  2. Anda dapat membuat tugas dan menambahkannya ke antrean.
  3. Worker yang telah Anda buat menyewa tugas, menggunakan TaskQueue.
  4. App Engine mengirim data tugas ke worker dalam respons lease.
  5. Worker memproses tugas. Jika tugas gagal dieksekusi sebelum lease berakhir, worker dapat mengubah durasi lease. Jika lease berakhir, tugas akan tersedia untuk disewakan ke worker lain.
  6. Setelah tugas berhasil diproses, worker akan menghapusnya.

Langkah selanjutnya