Блокирачко барање во прокси базенот може да го запре Scrapy
Држете го синхроното повикување на API-то на прокси базенот надвор од патеката на јамката со настани на Scrapy и дајте ѝ на детекцијата на крајни точки сопствена политика за неуспеси.
Ползачот има доволно конфигурирани паралелни барања. Сепак запира секогаш кога ќе побара друга адреса од прокси базенот. Додавањето повеќе проксија не влијае на тоа запирање.
Вообичаен шаблон на middleware го повикува requests.get(pool_url) внатре во process_request(). Тоа е синхрона мрежна операција на патека што треба да соработува со асинхрониот мотор на Scrapy. Додека повикувањето чека, може да го задржи неповрзаното работење на истата нишка од јамката со настани.
Во работата има две барања
Едното барање добива крајна точка од услугата на базенот. Другото ја користи таа крајна точка за контакт со целта. Мерете ги и известувајте за нив одделно. Бавно API на базенот може да го направи секое избрано прокси бавно пред апликацијата воопшто да се поврзе со него.
Користете интеграција за асинхроно откривање што ја поддржува инсталираната верзија на Scrapy, или набавете и освежувајте ограничен локален сет на крајни точки надвор од критичната патека на секое барање. Ако блокирачката работа мора да се премести, дајте му на тој извршител сопствени ограничувања и ракување со таймаути; неограничениот ред само го преместува доцнењето.
Не издавајте автоматски уште едно повикување за откривање за секое барање. Краткотраен кеш или изнајмена серија може да ја намалат зависноста од услугата на базенот, под услов неговиот животен век да одговара на вистинската политика за крајни точки на услугата.
Дефинирајте што значи неуспешно барање
Празен или неуспешен одговор од базенот не треба тивко да ги отстрани метаподатоците за проксито и да дозволи директно барање. Изберете јасен исход: чекање во рамки на буџетот на задачата, неуспех или користење на одобрена кеширана крајна точка.
Одржувајте ја чиста и сопствената рута на API-то на базенот. Ако е внатрешна услуга, испраќањето на неговото приватно име на домаќин низ токму тоа прокси што помага да се избере може да создаде кружна зависност.
Откако откривањето ќе работи без да го блокира неповрзаното работење, проверете ја обичната трансакција преку проксито. Тоа се одделни поправки и нивното време заслужува одделни полиња во дневникот.