C++/Qt, Консультация по использованию QNetworkAccessManager
500 UAHЗадача:
Имеется программа, задача которой получать информацию с нескольких сайтов, отправляя API запросы. Для этого создан список прокси, заданы интервалы между запросами.
Есть неизменяемая ссылка, например https://ya.ru. Нужно отправить GET запрос, использовав случайную прокси из списка. Затем повторить операцию с заданным интервалом, например 1с.
Всего таких задач 200-300.
Проблема в эффективном использовании QNetworkAccessManager. При установке случайной прокси в qnam происходит увеличение ОЗУ. Выглядит как утечка памяти. Спасает QNetworkAccessManager::clearAccessCache. В момент очистки кеша программа зависает.
Хорошо работает, если прокси «медленные». Время ответа примерно 1-2с. Проблемы начинаются при использовании быстрых прокси, до 500мс. Если qnam задать конкретный прокси и не изменять – работает отлично. Но вариант не подходит, прокси нужно изменять.
Изучал QNetworkProxyFactory. Непонятно как выбирается прокси из предоставленного списка.
Пробовал:
- синхронную/асинхронную отправку запросов,
- создавать несколько qnam по формуле 1 qnam – 6 задач
- создавать qnam, отправлять запрос, удалять qnam
Прикрепил тестовый проект, Qt 5.15.2, MinGW 64.
Ищу совета, как правильно пользоваться qnam и списком прокси.
ОС Windows
Приложения 1
Актуальные фриланс-проекты в категории C и C++
Реверс-инжиниринг консольных утилит для опроса контроллеров SSD (Flash ID)1. Цель работы Выделение программного интерфейса (API) взаимодействия с контроллерами SSD/NVMe из предоставленного набора консольных утилит (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron и др.). Результатом должно стать рабочий код на языке C/C++ или точная… C и C++, Десктопные приложения ∙ 11 дней 5 часов назад ∙ 6 ставок |
Разработка карты семян Minecraft Java / просмотрщика семян для сайтаРазработка карты семян Minecraft Java / Seed Viewer для сайтаОписание проекта Необходимо разработать браузерный инструмент Minecraft Java Seed Map / Seed Viewer, который будет работать на нашем сайте и позволит пользователю ввести семя Minecraft Java Edition и просмотреть… C и C++, HTML и CSS верстка ∙ 11 дней 12 часов назад ∙ 17 ставок |