Bersihkan cara untuk membatalkan skrip pemrosesan QGIS dari gui

12

Saya telah menulis skrip pemrosesan QGIS yang melakukan analisis fasilitas terdekat. Mengambil set input data lengkap (alamat 20k sebagai titik awal, ~ 100 titik target, jaringan jalan OSM dengan ~ 13k linestrings) skrip berjalan sekitar 3 jam, dan karenanya menggunakan berbagai indikator kemajuan, untuk memastikan kepada pengguna bahwa itu adalah masih hidup (keluaran log, bilah kemajuan, sisa waktu, gelang karet menunjukkan cara ke fasilitas terdekat yang baru saja diproses, lihat screenshot di bawah):

masukkan deskripsi gambar di sini

Sekarang saya ingin membatalkan skrip yang sedang berjalan dan sejauh yang saya bisa lihat, ini hanya dapat dilakukan dengan [X]kanan atas di jendela skrip pemrosesan gui.

Namun demikian, skrip tetap diproses sebagaimana ditunjukkan oleh karet gelang biru serta waktu pemrosesan dan bilah kemajuan ...

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

... dan sumber daya sistem di task manager:

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Namun, beberapa menit (~ 14 menit) kemudian skrip berhenti diproses dan sistem tidak lagi menggunakan sumber daya:

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Karena rentang waktu antara menutup jendela dan menghentikan pemrosesan tampaknya cukup tidak terduga bagi saya, pertanyaan saya adalah: Apakah ini cara yang disarankan untuk membatalkan skrip pemrosesan QGIS, atau adakah cara lain untuk dengan bersih membatalkan skrip semacam itu dari gui?

Jochen Schwarze
sumber
Tentunya bukan cara terbaik atau cara yang paling jelas untuk melakukannya, tapi saya umumnya benar-benar membunuh proses dari Windows Task Manager: tindakan ini memiliki penutupan QGIS sebagai konsekuensinya, tetapi juga gangguan skrip dan penghematan sumber daya sistem . Namun, jika Anda ingin mengetahui sisa waktu, Anda dapat mengatur bilah progres sesuai dengan iterasi atas fitur (saya tidak tahu apakah ini yang Anda inginkan).
mgri
Mungkin posting ini mungkin membantu: Bagaimana cara menghentikan skrip Python dalam kerangka pemrosesan dengan benar? . Secara khusus, jawaban gen menggunakan sys.exitfunc().
Joseph

Jawaban:

2

Dari shell perintah, "taskkill / f / im qgis-ltr-bin.exe / t" akan menghentikan proses dengan segera. Saya tidak berpikir ada solusi gui, berdasarkan apa yang Anda inginkan. Di QGIS, jika Anda ingin mengakhiri proses dengan bersih, Anda harus menunggu program saat mengakhiri proses. Tetapi melalui perintah shell ini akan memungkinkan Anda untuk segera bergerak maju.

AlecZ
sumber