Size: a a a

2020 January 10

B

Bretbas in pro.net
там можно по идее допилить, безопасную к потокам коллекцию использовать
источник

B

Bretbas in pro.net
@thatisbad , знаешь что теперь интересно.
Я использую бесплатные прокси. И через некоторые из списка, запросы не проходят к ресурсах.

Тоесть может кинуть исключение, что мол долгое слишком ожидание ответа.
Вот тут бы какую нибудь RetryPolicy с изменением прокси сервера сделать
источник

U

Username in pro.net
ну это всегда надо делать, прокся и платная может быть мертвой
источник

U

Username in pro.net
можно конечно в момент добавления проверять её и нерабочие сразу откидывать, если их не особо много, но не гарантий что она не умрёт в процессе
источник

B

Bretbas in pro.net
Username
ну это всегда надо делать, прокся и платная может быть мертвой
просто это я к чему все.
Я видел у конфигурации IHttpClientFactory какие то настройки политик переподключения.
Но это наверное явно не входит в мой алгоритм смены прокси сервера при каждом запросе в ProxyHttpHandler
источник

U

Username in pro.net
тут хз, никогда не трогал их
источник

IC

Iλyα Che in pro.net
Была же какая-то либа для удобных ретраев? Забыл название.
источник

IC

Iλyα Che in pro.net
А, polly!
источник

U

Username in pro.net
я у себя обычно делаю коллекцию кольцевую с проксями, при запросе ловлю фейлы коннекта, чекаю че за там траблы, если надо удаляю мертвую проксю и сразу беру другую пока не достигну ретрайлимита или проксей не останется
источник

B

Bretbas in pro.net
Iλyα Che
Была же какая-то либа для удобных ретраев? Забыл название.
да политики такого рода подключены автоматом к IHttpClientFactory
источник

B

Bretbas in pro.net
через AddTransientHttpErrorPolicy
источник

B

Bretbas in pro.net
Iλyα Che
А, polly!
хотя, это и есть polly скорее всего
источник

AB

Alex B in pro.net
Bretbas
@thatisbad , знаешь что теперь интересно.
Я использую бесплатные прокси. И через некоторые из списка, запросы не проходят к ресурсах.

Тоесть может кинуть исключение, что мол долгое слишком ожидание ответа.
Вот тут бы какую нибудь RetryPolicy с изменением прокси сервера сделать
На коленке делал так: накопипастил тысяч 30 (это быстро на самом деле) бесплатных прокси из инторнета из постраничной выдачи топовых свалок прокси.
Потом отдельно процессил данные через прокси и отдельно строил рейтинг прокси серверов (строился на основе времени ответа на тестовый запрос на тестовый url). Меньше время ответа при работе через прокси на тестовом урле -> выше рейтинг. Соотв. если делался запрос за реальными данными, то из рейтинга бралось прокси и исспользовалось для запроса, если был таймаут, то прокси выкидывалось (с retry policy). Периодически рейтинг перестраивался, т.к. прокси умирают, да. Запросы за данными в N потоков и одновременно используются соотв. N прокси. В итоге 250к запросов с лимитом АПИ к которому я обращался в 1-2к в сутки с одного IP ушло часов 5 в сумме. Есть подозрение что было дешевле заплатить за доступ к API к которому я стучался, но там бы вряд ли кто то платил бы + на самом деле времени ушло не много + задача была разовая.
источник

B

Bretbas in pro.net
Iλyα Che
Была же какая-то либа для удобных ретраев? Забыл название.
да.
Вот норм на самом деле это Polly.

В самом замечательном случае я хотел бы, чтобы происходило следующее через один инстанс HttpClient:
Делаем запрос без прокси. Если ответ успешен, то все норм. Если ответ плохой, вот тут включаем политику Polly переподключения, но каждое переподключение будет с разным прокси
источник

B

Bretbas in pro.net
Alex B
На коленке делал так: накопипастил тысяч 30 (это быстро на самом деле) бесплатных прокси из инторнета из постраничной выдачи топовых свалок прокси.
Потом отдельно процессил данные через прокси и отдельно строил рейтинг прокси серверов (строился на основе времени ответа на тестовый запрос на тестовый url). Меньше время ответа при работе через прокси на тестовом урле -> выше рейтинг. Соотв. если делался запрос за реальными данными, то из рейтинга бралось прокси и исспользовалось для запроса, если был таймаут, то прокси выкидывалось (с retry policy). Периодически рейтинг перестраивался, т.к. прокси умирают, да. Запросы за данными в N потоков и одновременно используются соотв. N прокси. В итоге 250к запросов с лимитом АПИ к которому я обращался в 1-2к в сутки с одного IP ушло часов 5 в сумме. Есть подозрение что было дешевле заплатить за доступ к API к которому я стучался, но там бы вряд ли кто то платил бы + на самом деле времени ушло не много + задача была разовая.
>то прокси выкидывалось (с retry policy)
Ну у тебя происходило retry с новым прокси через тот же HttpClient?
источник

vl

vova lantsov in pro.net
Bretbas
да. Я если честно в отчаянии.
хочу сделать круто. А круто сделать не получается, из за этой кривизны в HttpClient'е
Miha Zupan из тимы майков, отвечающий за System.Net, заинтересовался этой фичей и обещал посмотреть)
источник

IC

Ilya Chernoudov in pro.net
Bretbas
>то прокси выкидывалось (с retry policy)
Ну у тебя происходило retry с новым прокси через тот же HttpClient?
Делается через fallback а Polly
источник

IC

Ilya Chernoudov in pro.net
По крайней мере можно попытаться
источник

G

Gopneg in pro.net
vova lantsov
Miha Zupan из тимы майков, отвечающий за System.Net, заинтересовался этой фичей и обещал посмотреть)
глядишь через год будет сокс? %)
источник

vl

vova lantsov in pro.net
Gopneg
глядишь через год будет сокс? %)
Смотря как приоритеты расставят
источник