Многопользовательский фильтр в фоне

AlexandrKulik

Новичок
Здравствуйте уважаемые профи, помоги с советом, уже долгое время не могу придумать как реализовать механизм фильтрации в кабинете для каждого пользователя.

К примеру есть кабинет в котором 100 пользователей, каждый может собирать данные (назову их просто данные) и необходимо реализовать механизм фильтрации, т.е. человек создает фильтр и запускает базу на фильтрацию ,в базе может быть и 1000 и 100 000 записей и больше, ясное дело что это все нужно делать в фоне.

Если бы фильтрацию запускал 1-2 человек то проблем бы и не было для каждого запускать свой демон и он бы крутился пока не выполнил задание, но если например все 100 запустят то это будет уже 100 демонов что будет давать нагрузку и будет что то вываливаться по сервер.

Сервер VPS 3 Гб Озу

Думал делать через сервере очередей типа Gearman, но тоже ситуация например если много кто запустил вчера на фильтрацию, то те кто сегодня запустят будут ждать пока очередь не отработает старая, а хочется что бы человек когда запустил то уже пошел процесс фильтрации данных

Подскажи как можно реализовать такую задачу, что бы процесс фильтрации запускался для пользователя когда он запустил, ну и если все запустят, как это обыграть, что бы сервер работал и не падал

У каждого пользователя есть база с контактами например людей, в ней может быть 100 000 контактов может больше и он хочет профильтровать ее убрать с нее ненужных, и такая база может быть у каждого пользователя.

Фильтровать нужно не сами данные которые в базе, в базе находятся к примеру только ID и по каждому ID нужно выполнять API запрос к другому сервису и получить полные данные по человеку и потом уже фильтровать их по пользовательскому фильтру
 
Последнее редактирование:

whirlwind

TDD infected, paranoid
Очереди хороший вариант, потому что масштабировать легко.
 

whirlwind

TDD infected, paranoid
А что тут обыгрывать, тут считать нужно и планировать. Гуглить message queue. Кейсов как и решений миллион. Если ресурсов сервака не хватает что тут можно предложить еще, сделать вжух или скинуться на сервер? )
 

AmdY

Пью пиво
Команда форума
Я не очень понимаю что он имеет ввиду под словом фильтр и почему для этого надо делать запросы к АПИ. Но вот эти самые запросы могут стать тонким местом, раз уж у него там сотни тысяч запросов.

Думал делать через сервере очередей типа Gearman, но тоже ситуация например если много кто запустил вчера на фильтрацию, то те кто сегодня запустят будут ждать пока очередь не отработает старая, а хочется что бы человек когда запустил то уже пошел процесс фильтрации данных
Очередей можно делать несколько, хоть под каждого пользователя своя. Точно так же и количество консумеров для разгребания этих очередей может быть произвольное.
 

AmdY

Пью пиво
Команда форума
А разве Gearman ещё не умер, он вроде уже много лет не обновляется?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
на лямбдах можно фильтровать - их запустится столько, сколько клиентов запрос сделает, и одновременно работать будут
:) а Безосу денег надо, чтобы WashingtonPost кормить и с Трампом ругаться
 
Сверху