212 похожих чатов

Есть 1 очередь(aws simple) для всех клиентов, есть пул воркеров

каждый на своем инстансе.
1 клиент может в какой то момент времени накидать тяжелых задач в очередь,
воркеры будут заняты задачами 1 го клиента например 30 мин, в это же время 2й, 3й клиент закинут свои маленькие задачи в очередь, но им придется ждать завершения обработки 1го клиента.
Заставлять ждать других клиентов нельзя.
Как бы вы решили такую задачу? Как вообще принято их решать?
Пока решил ручным решением, что задачи клиентов закидываются в очередь порционно, а не все сразу, что позволит другим клиентам втиснуться в промежутки. Размер порции лимитировано зависит от количества всех задач в обработке и максимум зависит от количества воркеров.

8 ответов

24 просмотра

Мне кажется, это такая же задача, как например, на балансере выбор сервера

Vlad-Petrov Автор вопроса
John Doe
Мне кажется, это такая же задача, как например, на...

У меня воркер может взять только 1 задачу из очереди, когда закончит - возьмет другую. Баланса по ресурсам не нужно пока.

Сделать приоритетные очереди по размеру задач.

Мб это можно как-то асинхронить? Бить задачи на примерно одинаковые по времени выполнения части и асинхронно обрабатывать

Vlad-Petrov Автор вопроса
Alexander
Мб это можно как-то асинхронить? Бить задачи на пр...

Так это все в паралель на разных инстансах.

не вникая - плюс-минус приемлимое решение. Возможно я бы имел некий механизм посредине, что считал бы "бюджет" задач на единицу времени для тенанта и решал пушить ли задачу непосредственно в работу, или придержать ещё немного. Также при сильном росте можно пробовать считать объемы задач по большим клиентам и расселять их равномерно с маленькими по разным очередям. Ключевые слова, что могут помочь найти в интернетах опыт других: - multi tenancy - queue - task balancer Одна из ссылок (не вчитывался): https://medium.com/thron-tech/multi-tenancy-and-fairness-in-the-context-of-microservices-sharded-queues-e32ee89723fc UPD: вот сам амазон ещё написал что-то релевантное https://aws.amazon.com/ru/blogs/apn/using-amazon-sqs-in-a-multi-tenant-saas-solution/

Vlad-Petrov Автор вопроса
Andrii Dembitskyi
не вникая - плюс-минус приемлимое решение. Возмож...

Очень полезно. Нужно бы раньше ознакомиться. Понял, что моя проблема называется “noisy neighbor”

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта