Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 10, 2014 15:38:17

unkier
От:
Зарегистрирован: 2009-11-05
Сообщения: 92
Репутация: +  2  -
Профиль   Отправить e-mail  

http client с небольшой логикой

Привет коллеги.

Есть у меня такая задача, работать с сайтиками через REST api. Всё как бы норм, питон в этом могуч. Заюзал requests-futures, асинхронность все дела. В общем proof of concept работает. Но тут появляется нюанс. Сайты бывают медленные, бывают быстрые. Ответы бывают большие, бывают маленькие. А нужно провести сеанс сбора данных со всех сайтиков и потом с данными работать. И получается что может кто то затупить и всё будет ждать его. Просто выставлять таймаут не подходит. Потому что может это ответ большой от сайта, а может ответ маленький и он просто затупил.

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

В современных http client либах я такого что то не встречал. Может плохо искал.

Прошу знатоков придать мне ускорение в нужную сторону. Заранее благодарен.



Офлайн

#2 Дек. 11, 2014 17:51:05

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

http client с небольшой логикой

Content-Length

Офлайн

#3 Дек. 12, 2014 12:06:12

john123
Зарегистрирован: 2013-12-22
Сообщения: 56
Репутация: +  7  -
Профиль   Отправить e-mail  

http client с небольшой логикой

unkier
И получается что может кто то затупить и всё будет ждать его. Просто выставлять таймаут не подходит. Потому что может это ответ большой от сайта, а может ответ маленький и он просто затупил.

Уточните пожалуйста, “всё” - это что? Кто кого будет ждать?
И что у Вас стоит в приоритете - скорость?

Офлайн

#4 Дек. 13, 2014 12:29:30

unkier
От:
Зарегистрирован: 2009-11-05
Сообщения: 92
Репутация: +  2  -
Профиль   Отправить e-mail  

http client с небольшой логикой

john123
Уточните пожалуйста, “всё” - это что? Кто кого будет ждать?
И что у Вас стоит в приоритете - скорость?

всё - это логика обработка данных. если к примеру данные тянутся с 15 источников и 14 уже стянулись а с 15 данные идут по паре байт в секунду, то в моём случае нужно забить на тормозящий источник ибо остальные данные успеют устареть. да, скорость в приоритете.

решил копнуть в сторону aiohttp, вроде там это можно малой кровью докрутить. вот, может кому пригодится : https://github.com/KeepSafe/aiohttp/issues/196



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version