Логическая задачка в многопотоке

dimanis

Client
Регистрация
16.04.2016
Сообщения
195
Благодарностей
110
Баллы
43
Всем привет! Несколько дней туплю над задачкой. Нужно элегантное решение.

Отправляю ГЕТ запрос по одному адресу, получаю ответ, ложу его в БД. Все просто.
Но запрос длится 2-9 секунд, а свежий ответ мне нужен стабильно каждую секунду.
Когда врубаю это в многопоток, получается балаган, то куча запросов в одну секунду, то одновременный простой 3 секунды, а нужен порядок, т.е. ответ не реже 1 раза в сек.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 600
Баллы
113
куча потоков это сколько?

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

dimanis

Client
Регистрация
16.04.2016
Сообщения
195
Благодарностей
110
Баллы
43
Ставил 10 - 20 потоков, но тут 2 трабла: 1 при частом обращении можно получить бан по IP (прокси конечно используются но это не панацея может все в бан уйти). 2 бесполезный напряг БД mySQl когда куча потоков одновременно пытаются положить в одну и ту же ячейку одни и те же данные.

По 2 пункту ХЗ у меня с БД пока опыта мало. Другой проект раз в секунду берет данные из этой ячейки для обработки, мне кажется при многопотоке первых, второй проект начинает тупить когда получает данные из БД.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 600
Баллы
113
Ставил 10 - 20 потоков, но тут 2 трабла: 1 при частом обращении можно получить бан по IP (прокси конечно используются но это не панацея может все в бан уйти). 2 бесполезный напряг БД mySQl когда куча потоков одновременно пытаются положить в одну и ту же ячейку одни и те же данные.

По 2 пункту ХЗ у меня с БД пока опыта мало. Другой проект раз в секунду берет данные из этой ячейки для обработки, мне кажется при многопотоке первых, второй проект начинает тупить когда получает данные из БД.
ну тут просто можно в глобалке держать дату последнего добавления в бд. Если новый ответ имеет такую же дату - то незачем дёргать бд
 
  • Спасибо
Реакции: dimanis

dimanis

Client
Регистрация
16.04.2016
Сообщения
195
Благодарностей
110
Баллы
43
Эх, думал обойтись без глобалки, где-то читал что глючная эта штука, придется разбираться. Тогда можно обойтись и без БД. Спасибо за совет doc.
 

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