Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 9, 2016 17:55:48

Emc2
Зарегистрирован: 2016-09-18
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

os.forc() запустить несколько процессов параллельно. Опоздавших убить.

 def getDrv():
    driver = webdriver.Chrome()
    driver.get('http://xxxx.xx')
    return driver
Суть проблемы. Сайт плохо грузится. Либо 3-5 секунд, либо зависает на минуты. driver.get() ожидает загрузки неприемлемо долго из-за аякса. Отвечает, если отработал успешно (обычно это пару секунд) или ждёт “до упора”.
Задача. Запросить страницу, если за 5 сек не загрузилась, прервать и повторить запрос.
Вариант решения. os.forc() запустить несколько процессов параллельно. Откроется несколько Хромов. Какой сработал раньше - тот и использовать дальше. Всех опоздавших убить.
Вопрос. Как получить driver из процесса-фаворита? Это вообще возможно? Через 5 секунд просмотреть все, не предмет кто вернул driver, то и молодец.
Убивать os._exit(?) ? - это PID процесса?


Отредактировано Emc2 (Дек. 9, 2016 18:05:47)

Офлайн

#2 Дек. 11, 2016 20:19:53

python335
Зарегистрирован: 2016-10-19
Сообщения: 88
Репутация: +  -8  -
Профиль   Отправить e-mail  

os.forc() запустить несколько процессов параллельно. Опоздавших убить.

Это возможно. Есть модуль для работы с процессами в Win, поищи. Используя его создай цикл - типо
все значения записать в список и выбиравешь тот у которого поток больше всех - это тоже с помощью того модуля делается.

Офлайн

#3 Дек. 11, 2016 20:20:45

python335
Зарегистрирован: 2016-10-19
Сообщения: 88
Репутация: +  -8  -
Профиль   Отправить e-mail  

os.forc() запустить несколько процессов параллельно. Опоздавших убить.

Убивать os._exit() не надо. У тебя тогда все процессы собьются. Названия то одинаковые!!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version