Код примерно такой:
from multiprocessing import Pool
# импорт всего, что нужно
# функция, выполняющаяся в многопотоке
def worker(data):
#много кода
# Ловим событие, по нему запускаем многопоточный код
@watcher.on_message()
def start(client, message):
# немного кода,
# в итоге получаем список result
p = Pool(10)
p.map(worker, result)
Но при такой реализации при множестве одновременно срабатывающих событий создается огромное количество потоков, в итоге переполняется память и приходится перезагружать сервер
Как сделать правильно, чтобы Pool был один единственный и в него добавлялись задачи по событиям? При этом надо чтобы сохранилась многопоточность и количество потоков было ограничено.