У меня есть 10 заданий, которые представляют собой скребки на основе селена, которые используют сельдерей для планирования и запуска с Redis в качестве брокера.
Selenium использует geckodriver для подключения и использует Firefox (65.0.1, безголовый режим) для очистки данных.
Проблема, с которой я сталкиваюсь, состоит в том, что, как только рабочий из сельдерея выполняет задачу, которая порождает процессы FireFox для очистки. Хотя в конце каждой задачи я использую driver.quit()
, сохраняются процессы Firefox и geckodriver, которые сохраняются.
Это выше суть моей проблемы. В конечном итоге он потребляет большую часть моей оперативной памяти и в конечном итоге приводит к нехватке памяти , доступной для других задач скребка.
Независимо от объема оперативной памяти. Задача по селену не должна покидать зомби-процессы, даже если вызывается driver.quit()
.
Любые предложения по решению этой проблемы были бы великолепны.