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