Динамический запуск количества потоков/выполнений

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 421
Баллы
113
Надеюсь, правильно сформулировал потребность.
Есть парсер, дергающий ссылки на объявления с максимальной скоростью 100-150К ссылок в час, в зависимости от наличия доступных/свежих.
Вторым парсером необходимо обрабатывать максимально оперативно эти все ссылки. Учитывая скорость обработки ссылки в районе 1,5-2 секунд, несложно высчитать, что достаточно выставить ему 1000 потоков и дело в шляпе.
Но когда скорость добычи ссылок снижается в ночное время до 3-5К, становится абсолютно бессмысленным гонять 1000 потоков.
Вот и стоит задача запускать необходимое число потоков, чтобы обеспечить оптимальное потребление ресурсов сервера, да и скорость парсинга выровнять для любого количества входных данных.
Я это вижу как-то так:
Скорость обработки 2 секунды - значит, за полчаса один поток обрабатывает 900 объявлений. Отнимем половину для страховки на опоздания ответа от сервера и прочие возможные задержки. Получим 400 объяв за полчаса.
Значит, при наличии 100000 объяв для обработки необходимо запускать 100000/400 = 250 потоков, а при 10000 всего 25.
При этом должно учитываться количество запущенных потоков. И потоки должны отрубаться при излишнем количестве.

Как это можно организовать - готов выслушивать ваши предложения.
 
Регистрация
12.07.2014
Сообщения
916
Благодарностей
371
Баллы
63
Количество потоков\количество исполнений ссылка
Этим кодом управлял парсером контента (потоки и количество).
 
  • Спасибо
Реакции: Alexmd

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)