Многозадачность в питоне

0 голосов
спросил 19 Сен от Denverino (430 баллов) в категории Программные продукты Esri
Добрый день. Пишу инструмент-скрипт для Arcgis. Чем больше функций навешиваю, тем больше вижу необходимость распараллеливания их выполнения. Но столкнулся с проблемой: используя multiprocessing.process дочерние процессы запускают новые сессии arcmap, так как это инструмент toolbox. Как можно это обойти? Может сумбурно объяснил...Спасибо

1 Ответ

0 голосов
ответил 24 Сен от Grigoriy (119,760 баллов)
оставил комментарий 26 Сен от Denverino (430 баллов)
Спасибо за ответ! Но к сожалению я не нашел в нем способа решить мою проблему(возможно пропустил?). Во всех примерах идет описание скриптов для запуска из среды python, про возможность запуска из toolbox нет информации. Буду копать дальше.
оставил комментарий 26 Сен от Denverino (430 баллов)
Нагуглил на github такую фразу:"Shows how to run multiprocessing from within a python toolbox tool. Since the tools in the python toolboxes run in the embedded process (ArcMap.exe or ArcCatalog.exe), multiprocessing can not be used directly. So the tool launches a standalone python file using the subprocess module. The standalone python file uses multiprocessing module to launch multiple worker processes that perform parellel processing.
". То есть с помощью модуля subprocess запускается процесс python, который уже в свою очередь с помощью модуля multiprocessing запускает дочерние процессы. Как то так. Логика понятна вроде, но как реализовать, пока не очень.
оставил комментарий 26 Сен от Denverino (430 баллов)
Все так и получилось, как описал выше. Теперь другие затыки: передача параметров, типы переменных, кодировки, вывод..
...