Size: a a a

2021 September 17

✨Basic_Instinct✨ in symfony
и как если в одномомент прилетить от 1000 пользовтаелей задач на 1000
источник

Ш

Шурик in symfony
Задача - распаралелить, а не всех одновременно
источник

✨Basic_Instinct✨ in symfony
"Консюмера обрабатывают задачи и выходит что пока обрботаються задачи последнего пользователя (до него дойдет очередь) то пройдет не мало времени."
источник

Ш

Шурик in symfony
Можно ли как то обрабатывать задачи паралельно по пользователям. Есть ли готовые програмные решение которые смогут это позволить?
источник

SP

Sergey Protko in symfony
Вот есть у тебя очередь на лям, и 100 консюмеров.

Простой вариант с одной очередью - все 100 консюмеров обрабатывают задачи 1-ого чела.

Сложнее с consistent hash по вйдишке юзеров - 100 консюмеров обрабывают паралельно задачи первой сотни людей. У них все разгребется быстрее. Остальные 900 будут ждать но если хочешь можешь заскейлить
источник

✨Basic_Instinct✨ in symfony
ну, и ...
Имеем консьюмера с задачами от 10 пользователей по 1к задач от каждого, каким бразом этим консьюмером обработаются паралельно?
источник

✨Basic_Instinct✨ in symfony
а, т.е. На каджую задачу по консьюмеру?
источник

SP

Sergey Protko in symfony
Перечитай мой пример. По айдишке юзера
источник

Ш

Шурик in symfony
Один юзер гарантированно на один и тот же консумер. Консумеров поднимай пока денег хватает
источник

✨Basic_Instinct✨ in symfony
ну так а как решит проблему балансировки?
источник

SP

Sergey Protko in symfony
Если пользователям пофигу когда все задачи выполнятся то для "справедливости" можно роутить не по юзера а по айдишке задачи

У всех медленно но справедливо
источник

✨Basic_Instinct✨ in symfony
вот я и думаю, что мб не по юзеру на консьюмер, а по задаче
источник

Ш

Шурик in symfony
Никто не говорил "по юзеру на консумера"
источник

Ш

Шурик in symfony
Юзеры с id заканчивающимся на 7 - всегда на одного, на 8 - на другого и тд
источник

Ш

Шурик in symfony
Например
источник

SP

Sergey Protko in symfony
Короч что важнее - шоб хоть какой прогресс (роутить по задаче), что б быстрее сделать все для одного (общая очередь компитинг консумеры) или что бы для как можно большего количества людей их n задач выполнились быстрее (партиции по юзера).

Что выбрать зависит от нефункциональных требований и характера работы
источник

✨Basic_Instinct✨ in symfony
ну таки опять, 100 пользовтаелей на 7 кинут 1к задач, и будет очередь ))
источник

Ш

Шурик in symfony
Да, но она будет распаралелена)
источник

SP

Sergey Protko in symfony
При 100 консюмерах на 1000 задач 1000 пользователей всеравно медленно
источник

✨Basic_Instinct✨ in symfony
источник