Чистый способ отменить скрипты обработки QGIS из графического интерфейса


12

Я написал скрипт обработки QGIS, который выполняет анализ ближайшего пункта обслуживания. Взяв полный набор входных данных (20 тыс. Адресов в качестве начальных точек, ~ 100 целевых точек, дорожная сеть OSM с ~ 13 тыс. Линий трасс), сценарий выполняется около 3 часов и поэтому использует различные индикаторы прогресса, чтобы убедить пользователя в том, что он все еще жив (вывод журнала, индикатор выполнения, оставшееся время, резинки показывают путь к ближайшей обработке, см. скриншот ниже):

введите описание изображения здесь

Теперь я хотел бы отменить запущенный скрипт, и, насколько я вижу, это можно сделать только с [X]правым верхним краем в окне графического интерфейса скрипта обработки.

Но при этом сценарий продолжает обрабатываться, на что указывают синие резиновые полосы, а также время обработки и индикатор выполнения ...

введите описание изображения здесь

введите описание изображения здесь

... и системные ресурсы в диспетчере задач:

введите описание изображения здесь

введите описание изображения здесь

Однако через пару минут (~ 14 минут) сценарий прекращает обработку, и система больше не потребляет ресурсы:

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

Поскольку промежуток времени между закрытием окна и остановкой обработки мне кажется довольно непредсказуемым, у меня вопрос: это рекомендуемый способ отмены сценариев обработки QGIS или есть другие способы чистого удаления таких сценариев из графического интерфейса?


Конечно, это не самый лучший и не самый ясный способ сделать это, но я обычно буквально убиваю процесс из диспетчера задач Windows: это действие приводит к закрытию QGIS, но также к прерыванию сценария и экономии системных ресурсов. , Однако, если вы хотите получить представление об оставшемся времени, вы можете установить индикатор выполнения в соответствии с итерацией по функциям (я не знаю, хотите ли вы этого).
Мгри

Возможно, этот пост может помочь: Как правильно завершить работу скриптов Python в среде обработки? , В частности, ответ гена с помощью sys.exitfunc().
Джозеф

Ответы:


2

Из командной оболочки «taskkill / f / im qgis-ltr-bin.exe / t» немедленно завершит процесс. Я не думаю, что есть решение с графическим интерфейсом, основанное на том, что вы собираетесь, хотя. В QGIS, если вы хотите аккуратно завершить процесс, вам придется ждать, пока программа завершит процесс. Но через командную оболочку это позволит вам сразу же двигаться вперед.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.