Работа максимальных рабочих concurrent.futures.ThreadPoolExecutor при масштабировании приложенияPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Работа максимальных рабочих concurrent.futures.ThreadPoolExecutor при масштабировании приложения

Сообщение Anonymous »

Я новичок в программировании на Python. Большая часть моего кода использует asyncio, поскольку я делаю вызовы ввода-вывода к базе данных, хотя в некоторых случаях я использую неасинхронные методы, которые работают долго, как и несколько вызовов платформы Pandas к базе данных, поэтому для Чтобы избежать вызова блокировки, который ограничивает масштабируемость, я использую concurrent.futures.ThreadPoolExecutor для выполнения метода блокировки следующим образом:

Код: Выделить всё

with concurrent.futures.ThreadPoolExecutor(max_workers=2) as executor:
values = executor.map(func, data)
Приведенная выше функция обеспечивает сбор данных максимальной длиной 2, что в основном требует не более 2 потоков, но когда приходит несколько пользователей и приложение необходимо масштабировать , в то время каким должно быть идеальное значение max_workers:
  • Должно ли оно требоваться каждым пользователем, то есть 2
  • Должно ли это быть максимально возможное значение, как указано в ссылке - https://docs.python.org/3/library/concu ... tures.html
Изменено в версии 3.8. : значение max_workers по умолчанию изменено на min(32, os.cpu_count() + 4). Это значение по умолчанию сохраняет как минимум 5 рабочих процессов для задач, связанных с вводом-выводом. Он использует не более 32 ядер ЦП для задач, связанных с ЦП, которые освобождают GIL. И это позволяет избежать неявного использования очень больших ресурсов на многоядерных машинах.
  • Не упомянуть ли об этом? вообще, и его можно создать по требованию.
Основной вопрос остается: если 10 пользователей начнут выполнять одну и ту же операцию, будут ли они в конечном итоге использовать один и тот же ThreadPoolExecutor< /code>(общий) или они в конечном итоге получают другой исполнитель, поскольку это не общий объект. Я хотел убедиться, что при масштабировании приложение не пострадает из-за неправильного дизайна

Подробнее здесь: https://stackoverflow.com/questions/667 ... ing-up-the
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»