Подключить вкладку из пула#
Пул управляет процессами браузера, контекстами, прокси, вкладками и повтором всей задачи.
eazy_sdk_browser получает одну выданную вкладку и выполняет на ней одну или несколько операций.
Ресурс |
Владелец |
Когда закрывает |
|---|---|---|
Процесс и контекст |
пул |
при выводе контекста или остановке пула |
Вкладка |
аренда пула |
при завершении или отмене задачи |
|
attachment вкладки |
вместе с тёплой вкладкой |
|
код задачи |
до возврата аренды |
Сессия контекста |
поток входа пула |
при смене ревизии или контекста |
Attachment должен создать один PydollDriver(tab, context_key=lease.context) на тёплую
вкладку. Одинаковый context_key сообщает драйверам соседних вкладок, что cookies и состояние
относятся к одному контексту. Закрытие драйвера снимает его CDP callbacks, но не закрывает
вкладку.
В режиме пула не создавайте BrowserSession на каждой вкладке. Пул входит на временной странице,
сохраняет состояние контекста и выдаёт вкладку вместе с источником сессии. Если операция сообщает
об истечении сессии, источник не меняет cookies под соседними вкладками: отказ выходит к пулу,
а тот создаёт новый контекст.
Предупреждение
Повтор операции внутри клиента и повтор всей задачи пулом не должны конкурировать. После внешнего побочного эффекта зафиксируйте аренду; до фиксации только пул решает, можно ли повторить задачу.