Блакуючы запыт да пула праксі можа прыпыніць Scrapy
Трымайце сінхронны выклік API пула праксі па-за шляхам цыклу падзей Scrapy і дайце выяўленню канчатковых кропак уласную палітыку збояў.
У сканера дастаткова наладжана адначасовых запытаў. І ўсё ж ён спыняецца кожны раз, калі просіць у пула праксі чарговы адрас. Даданне новых праксі гэтага спынення не закранае.
Звычайны шаблон прамежкавага праграмнага забеспячэння выклікае requests.get(pool_url) унутры process_request(). Гэта сінхронная сеткавая аперацыя на шляху, які павінен узаемадзейнічаць з асінхронным рухавіком Scrapy. Пакуль выклік чакае, ён можа стрымліваць староннюю працу ў тым жа патоку цыклу падзей.
У задачы два запыты
Адзін запыт атрымлівае канчатковую кропку ад службы пула. Другі выкарыстоўвае гэтую кропку для сувязі з пунктам прызначэння. Вымярайце і паведамляйце пра іх асобна. Павольнае API пула можа зрабіць кожнае выбранае праксі павольным яшчэ да таго, як праграма да яго падключылася.
Выкарыстоўвайце інтэграцыю асінхроннага выяўлення, якую падтрымлівае ўсталяваная версія Scrapy, або атрымлівайце і абнаўляйце абмежаваны лакальны набор канчатковых кропак па-за крытычным шляхам кожнага запыту. Калі блакуючую працу трэба перанесці, дайце гэтаму выканаўцу ўласныя ліміты і апрацоўку тайм-аўтаў; неабмежаваная чарга проста пераносіць затрымку.
Не рабіце аўтаматычна яшчэ адзін выклік выяўлення для кожнага запыту. Кароткатэрміновы кэш або арандаваны пакет могуць паменшыць залежнасць ад службы пула, калі тэрмін іх жыцця адпавядае рэальнай палітыцы канчатковых кропак службы.
Вызначце, што значыць няўдалы пошук
Пусты або няўдалы адказ пула не павінен моўчкі выдаляць метаданыя праксі і дазваляць прамы запыт. Выберыце яўны вынік: чакаць у межах бюджэту задачы, пацярпець няўдачу або выкарыстаць ухваленую кэшаваную канчатковую кропку.
Трымайце ўласны маршрут API пула таксама свабодным. Калі гэта ўнутраная служба, перадача яе прыватнага імя хоста праз той самы праксі, які дапамагае яе выбраць, можа стварыць цыклічную залежнасць.
Калі выяўленне працуе, не блокуючы староннюю працу, даследуйце звычайную трансакцыю праз праксі. Гэта асобныя рамонты, і іх час заслугоўвае асобных палёў у журнале.