Maneira limpa de cancelar scripts de processamento QGIS da GUI

12

Eu escrevi um script de processamento QGIS que realiza uma análise mais próxima da instalação. Tomando o conjunto completo de dados de entrada (20.000 endereços como pontos de partida, ~ 100 pontos de destino, rede rodoviária OSM com ~ 13k linhas de linha), o script dura cerca de 3 horas e, portanto, utiliza vários indicadores de progresso, para garantir ao usuário que ainda ativo (saída do registro, barra de progresso, tempo restante, faixas de borracha indicam o caminho para a instalação mais próxima a ser processada, cp. captura de tela abaixo):

insira a descrição da imagem aqui

Agora eu gostaria de cancelar o script em execução e, tanto quanto posso ver, isso só pode ser feito com o [X]canto superior direito na janela da GUI do script de processamento.

Mas, fazendo isso, o script continua sendo processado conforme indicado pelos elásticos azuis, assim como o tempo de processamento e a barra de progresso ...

insira a descrição da imagem aqui

insira a descrição da imagem aqui

... e os recursos do sistema no gerenciador de tarefas:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

No entanto, alguns minutos (~ 14min) mais tarde no script param de processar e o sistema não está consumindo mais recursos:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Como o intervalo de tempo entre fechar a janela e interromper o processamento parece bastante imprevisível para mim, minha pergunta é: essa é uma maneira recomendada de cancelar scripts de processamento do QGIS ou existem outras maneiras de cancelar esses scripts da GUI de maneira limpa?

Jochen Schwarze
fonte
Certamente não é a melhor nem a maneira mais clara de fazê-lo, mas geralmente acabo literalmente com o Gerenciador de Tarefas do Windows: essa ação tem como conseqüência o fechamento do QGIS, mas também a interrupção do script e a economia dos recursos do sistema . No entanto, se você quiser ter uma idéia do tempo restante, defina a barra de progresso de acordo com a iteração dos recursos (não sei se é isso que você deseja).
Mgri 29/05
Talvez este post possa ajudar: Como finalizar scripts Python corretamente na estrutura de processamento? . Em particular, a resposta do gene usando sys.exitfunc().
317 Joseph

Respostas:

2

No shell de comando, "taskkill / f / im qgis-ltr-bin.exe / t" encerraria o processo imediatamente. Eu não acho que exista uma solução gráfica, com base no que você está buscando. No QGIS, se você quiser finalizar o processo de maneira limpa, terá que aguardar o programa ao finalizar o processo. Mas, via shell de comando, isso permitirá que você avance imediatamente.

AlecZ
fonte