Чистий спосіб скасувати сценарії обробки QGIS від gui


12

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

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

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

Але при цьому сценарій залишається обробкою, як зазначено синіми гумовими смугами, а також часом обробки та смугою прогресу ...

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

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

... і системні ресурси в менеджері завдань:

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

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

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

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

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

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

Оскільки часовий проміжок між закриттям вікна та припиненням обробки видається мені непередбачуваним, моє питання: чи це рекомендований спосіб скасувати сценарії обробки QGIS, чи є інші способи чистого скасування таких скриптів з gui?


Звичайно, це не найкращий чи найясніший спосіб зробити це, але я, як правило, буквально вбиваю процес від Windows Task Manager: ця дія спричиняє закриття QGIS, а також переривання сценарію та економію системних ресурсів. . Однак якщо ви хочете мати уявлення про час, що залишився, ви можете встановити смугу прогресу відповідно до ітерації функцій (я не знаю, чи це ви хочете).
— mgri

Можливо, ця публікація може допомогти: Як правильно припинити сценарії Python в рамках Processing Framework? . Зокрема, використовуючи відповідь гена sys.exitfunc().
— Йосип

Відповіді:


2

З командної оболонки "taskkill / f / im qgis-ltr-bin.exe / t" негайно завершить процес. Я не думаю, що існує рішення gui, яке базується на тому, для чого ти збираєшся. У QGIS, якщо ви хотіли закінчити процес чисто, вам доведеться почекати програми, коли закінчите процес. Але за допомогою командної оболонки це дозволить вам рухатися вперед відразу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.