我有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
睡眠技术是危险的,因为你希望休息时发生在睡眠......但它可能不会 –