Mengapa Requests membuka lebih banyak sambungan daripada pool_maxsize
Gunakan pool_block untuk kumpulan terhad, dan tambah belanjawan peringkat aplikasi apabila had mesti meliputi semua trafik melalui proksi.
Dengan nilai lalai pool_block=False, pool_maxsize mengehadkan sambungan yang dikekalkan dalam kumpulan, bukan setiap sambungan serentak. Requests boleh mencipta sambungan tambahan dan membuangnya selepas itu.
Untuk kumpulan terhad yang digunakan oleh permintaan HTTPS sesi sedia ada:
from requests.adapters import HTTPAdapter
adapter = HTTPAdapter(
pool_connections=10,
pool_maxsize=4,
pool_block=True,
)
session.mount("https://", adapter)Pemasangan memilih URL destinasi HTTPS. Permintaan HTTP menggunakan penyesuai yang dipasang di bawah http://.
| Input | Apa yang dikawalnya |
|---|---|
| pool_connections | Berapa banyak kumpulan yang dicache oleh pengurus |
| pool_maxsize | Sambungan dalam satu kumpulan |
| pool_block=True | Menunggu sambungan kumpulan daripada mencipta tambahan |
Requests juga mencache pengurus proksi mengikut URL proksi. Nilai-nilai ini tidak membentuk satu had keseluruhan merentas senarai proksi dan destinasi yang berputar. Gunakan belanjawan keserentakan peringkat aplikasi jika keperluannya ialah semua kerja melalui satu perantara.
Penyekatan menjadikan pelepasan respons penting: habiskan badan atau tutup respons penstriman supaya kerja yang menunggu boleh diteruskan. Penyesuai Requests tidak menyediakan had masa berasingan untuk penantian kumpulan ini dalam susunan yang ditunjukkan.