SimBioT19
@SimBioT19
{{ user.about }}

С помощью чего можно такое реализовать?

Привет!
Есть сервер, на него поступает много запросов каждую секунду.
Некоторые из этих запросов имеют одинаковый параметр т.е. например userId = 1.

Сейчас я произвожу действие D для каждого запроса по отдельности, когда он получен, а мне хотелось бы, чтобы какой-нибудь worker выполнял лишь одно D для всех запросов с одинаковым userId.

Пример выполнения, который мне нужно реализовать:
сейчас unix time условно 100 и в это время ко мне поступило 10 запросов с userId = 1 и 5 запросов userId = 2.

Запросам просто возвращаю ок, что они получены; и передаю их обработчику, который группирует запросы по userId и производит действие, сначала с данными по userId = 1, потом userId = 2 (порядок не важен).
Получилось всего два D, вместо 15.

Затем worker смотрит запросы с меткой времени 101 и так же группирует их и выполняет ...

И ведь получается, что нужно смотреть пришедшие данные каждую секунду
Тогда с помощью чего это реализовать? Нужно, конечно, чтобы задержка по времени и затраты ресурсов были минимальными.

Если делать с mysql, то это очень затратно по ресурсам.
Возможно ли использовать memcached? Получил запросы -> записал кэш -> прочитал кэш -> очистил. И по кругу.
Но ведь тогда сохранность данных под сомнением да и правильно ли так делать?

Направьте, куда смотреть
  • Вопрос задан
  • 355 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Zemlya
Как реализовать конкретно на пхп не подскажу, но логику я бы реализовывал так:
-> Старт сервера
-> заводим "условный список" из {D, %номер_юзера}
->> приходит запрос. Проверяем номер юзера из пришедшего запроса и все %номер_юзера из "условный список". Если нашлось соответствие, то отдаем соответствующему D запрос на растерзание. Если нет - создаем новый D и добавляем его в "условный список".
Ответ написан
Комментировать
mrMazai
@mrMazai
WebDeveloper
А кеширование запросов в mysql почему не срабатывает?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы