Qwentor
@Qwentor
Веб-программист

Как добавлять процессы в multiprocessing.Pool на ходу?

Код примерно такой:
from multiprocessing import Pool
# импорт всего, что нужно

# функция, выполняющаяся в многопотоке
def worker(data):
    #много кода

# Ловим событие, по нему запускаем многопоточный код
@watcher.on_message()
def start(client, message):

    # немного кода, 
    # в итоге получаем список result
    p = Pool(10)
    p.map(worker, result)


Но при такой реализации при множестве одновременно срабатывающих событий создается огромное количество потоков, в итоге переполняется память и приходится перезагружать сервер
Как сделать правильно, чтобы Pool был один единственный и в него добавлялись задачи по событиям? При этом надо чтобы сохранилась многопоточность и количество потоков было ограничено.
  • Вопрос задан
  • 203 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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