J'ai écrit un script de traitement QGIS qui effectue une analyse de l'installation la plus proche. En prenant l'ensemble complet de données d'entrée (20k adresses comme points de départ, ~ 100 points cibles, réseau routier OSM avec ~ 13k linestrings), le script s'exécute environ 3 heures, et utilise donc divers indicateurs de progression, pour faire comprendre à l'utilisateur qu'il est toujours en vie (sortie du journal, barre de progression, temps restant, bandes élastiques indiquant le chemin vers l'installation la plus proche qui vient d'être traitée, capture d'écran ci-dessous):
Maintenant, je voudrais annuler le script en cours d'exécution et pour autant que je puisse voir, cela ne peut être fait qu'en [X]
haut à droite dans la fenêtre de l'interface de script de traitement.
Mais ce faisant, le script reste en cours de traitement comme indiqué par les élastiques bleus ainsi que le temps de traitement et la barre de progression ...
... et les ressources système dans le gestionnaire de tâches:
Cependant, quelques minutes (~ 14min) plus tard, le script arrête le traitement et le système ne consomme plus de ressources:
Étant donné que l'intervalle de temps entre la fermeture de la fenêtre et l'arrêt du traitement me semble assez imprévisible, ma question est: est-ce un moyen recommandé d'annuler les scripts de traitement QGIS, ou existe-t-il d'autres moyens d'annuler proprement de tels scripts à partir de l'interface graphique?
la source
sys.exitfunc()
.Réponses:
À partir du shell de commande, "taskkill / f / im qgis-ltr-bin.exe / t" mettrait immédiatement fin au processus. Je ne pense pas qu'il existe une solution gui, basée sur ce que vous recherchez. Dans QGIS, si vous souhaitez terminer le processus proprement, vous devrez attendre le programme lors de la fin du processus. Mais via l'interpréteur de commandes, cela vous permettrait d'avancer immédiatement.
la source