Мне нужен объектный пул , и вместо того, чтобы реализовывать его самостоятельно, я подумал, что поищу готовую и протестированную библиотеку Python.
Я нашел множество других людей , которые смотрели , но не получили много прямых ответов, поэтому я перенес это сюда, в Переполнение стека.
В моем случае у меня большое количество потоков (использующих модуль threading
), которым необходимо время от времени вызывать удаленный сервер на основе SOAP. Каждый из них может установить свое собственное соединение с сервером, но настройка сокета и завершение процесса аутентификации обходится дорого (он ограничивается сервером), поэтому я хочу совместно использовать пул соединений, создавая больше только по мере необходимости.
Если бы элементы для пула были рабочими подпроцессами, я мог бы выбрать multiprocessing.pool
, но это не так. Если бы они были рабочими потоками, я бы выбрал эту реализацию , но это не так.
Если бы это были соединения MySQL, я бы выбрал pysqlpool , но это не так. Точно так же SQLAlchemy Pool отсутствует.
Если бы существовал один поток, использующий переменное число соединений / объектов, я бы рассмотрел эту реализацию , но мне нужно, чтобы она была поточно-ориентированной.
Я знаю, что мог бы реализовать это снова довольно быстро, но, учитывая, что многие ищут его, я подумал, что канонический ответ о переполнении стека будет хорошим.