我有4個職位像這樣的死循環:按下Ctrl + C後,如何在程序停止前讓Python完成作業?
list1 = []
while 1:
try:
# job1
a = B()
# job2
c = a.accd()
# job3
d = len(c)
# job4
list1.append(d)
except KeyboardInterrupt:
# save list1 into database(took long time)
break
我按下Ctrl + C後,我不能確保它所有4個作業,然後停止。
這似乎工作時,它正在睡覺,但它有睡眠延遲。
list1 = []
while 1:
try:
# job1
a = B()
# job2
c = a.accd()
# job3
d = len(c)
# job4
list1.append(d)
except aaddcdcd:
# some code here
finally:
try:
time.sleep(3) # if I press Ctrl + C here it works perfectly
except: KeyboardInterrupt:
# save list1 into database(took long time)
break
是否有可能在任何時候,當我按一些關鍵的,它在這個循環中,更新數據庫中的所有作業,然後停止。
是工作同時進行或順序?他們是在同一時間還是一個接一個地運行?不知道這件事。你也試圖捕獲一個或更多的KeyBoardInterupt? – JimmyNJ
如果睡眠工作,那麼只要做'''time.sleep(0.00001)'''或類似的東西,所以你不會注意到它。 – SH7890
睡眠技術是危險的,因爲你希望休息時發生在睡眠......但它可能不會 –