Perangkak mempunyai cukup permintaan serentak yang dikonfigurasikan. Namun ia berhenti setiap kali meminta alamat lain daripada kolam proksi. Menambah lebih banyak proksi tidak menyentuh jeda itu.

Corak middleware biasa memanggil requests.get(pool_url) di dalam process_request(). Itu ialah operasi rangkaian segerak pada laluan yang sepatutnya bekerjasama dengan enjin tak segerak Scrapy. Semasa panggilan menunggu, ia boleh menahan kerja tidak berkaitan pada urutan gelung peristiwa yang sama.

Terdapat dua permintaan dalam kerja itu

Satu permintaan memperoleh titik akhir daripada perkhidmatan kolam. Yang lain menggunakan titik akhir itu untuk menghubungi destinasi. Ukur dan laporkan kedua-duanya secara berasingan. API kolam yang lambat boleh membuat setiap proksi yang dipilih kelihatan lambat sebelum aplikasi sempat bersambung dengannya.

Gunakan integrasi penemuan tak segerak yang disokong oleh versi Scrapy yang dipasang, atau peroleh dan segarkan set titik akhir tempatan terhad di luar laluan kritikal setiap permintaan. Jika kerja menyekat perlu dipindahkan, beri pelaksana itu had dan pengendalian tamat masanya sendiri; baris gilir tanpa had hanya memindahkan kelewatan.

Jangan keluarkan panggilan penemuan lain secara automatik untuk setiap permintaan. Cache jangka pendek atau kumpulan yang dipajak boleh mengurangkan pergantungan pada perkhidmatan kolam, asalkan jangka hayatnya sesuai dengan dasar titik akhir sebenar perkhidmatan itu.

Tentukan maksud carian yang gagal

Respons kolam yang kosong atau gagal tidak sepatutnya membuang metadata proksi secara senyap dan membenarkan permintaan langsung. Pilih hasil yang jelas: tunggu dalam belanjawan tugas, gagal, atau guna titik akhir cache yang diluluskan.

Pastikan juga laluan API kolam itu sendiri lapang. Jika ia perkhidmatan dalaman, menghantar nama hos peribadinya melalui proksi yang membantunya dipilih boleh mencipta kebergantungan bulat.

Sebaik penemuan berfungsi tanpa menyekat kerja tidak berkaitan, periksa transaksi proksi biasa. Itu pembaikan berasingan, dan masanya wajar mendapat medan berasingan dalam log.

Artikel berkaitan