Python - пул FTP-подключений - PullRequest
0 голосов
/ 17 июня 2020

У меня есть универсальный многопроцессорный сценарий c, который может запускать любую задачу в многопроцессорной настройке. Я добавляю задачу как аргумент командной строки и использую getattr для вызова функций во внедренном коде.

taskModule = importlib.import_module(taskFile.replace(".py", ""))
taskContext = getattr(taskModule, 'init')()
response = pool.map_async(getattr(taskModule, 'run'), inputList)

Функция init () создает все соответствующие переменные для выполнения задачи и возвращает их как dict объект - taskContext. inputList - это список объектов dict, каждый dict содержит как объект taskContext, так и указанный c элемент, который нужно обработать, так что каждый процесс получает уникальный элемент для обработки вместе с копией контекста, требуемого задачей.

Одна из этих задач предназначена для FTP, и taskContext в этом случае содержит информацию о FTP-сервере вместе с другими деталями. Функция запуска в задаче FTP в значительной степени открывает соединение с использованием переменных контекста, загружает необходимые файлы и закрывает его, и это отлично работает.

Однако я думаю, что было бы хорошо, если бы я мог настроить пул соединений с несколькими FTP-соединениями в начале, как часть функции init () при создании контекста, а затем использовать их по мере доступности в методе запуска, очень похоже на пул соединений с БД, который предотвращает нужно каждый раз открывать и закрывать подключения к базе данных.

Это вообще возможно? Если да, то как лучше всего go сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...