我有一個Python腳本在命令行中運行硒框架,並不斷運行,以控制Chrome做後臺數據處理和監控。我的簡化代碼結構如下隨時隨地暫停/停止/命令Python腳本的最佳方法是什麼?
while True:
Do_task1() # a blocking function
Do_task2() # another blocking fucntion
... # calling many blocking functions below, including wait(), time.sleep()
我需要一種方法來隨時隨地中斷腳本暫停,安全地終止和下達指令。什麼是最好的方法來做到這一點? 我想過,想的幾種方法,但我不完全知道如何處理它:
我嘗試這樣做:
if msvcrt.kbhit(): key = msvcrt.getch().decode("utf-8").lower() if key == "j": self.setting1 = True elif key == "k": self.setting2 = True
while循環,但它通過在對我的按鍵做出反應之前,有一羣阻塞的電話。而且這個命令並不是實時接受我的鍵盤輸入,也就是說我會輸入一個字符輸入,而且我認爲它會在後臺緩衝區中,然後一旦代碼執行達到上面的代碼,它就開始執行東東。 對於終止腳本,我只是在CMD窗口中執行Ctrl-C,我不認爲這是最好的方式,我應該正確地結束程序結束後臺進程,如Chromedriver。
我以爲有一個異步運行的GUI,我可以有按鈕暫停和終止腳本。但我不確定如何處理它,或者如果這是一個好主意,甚至嘗試。歡迎任何建議。
使用腳本監控/工作流程監控框架,如AirBnB's Airflow或Luigi。我只是對此做了簡短的研究。
A related question但我並不需要返回正是它的不放過