私はこのような4つのジョブの無限ループを持っている:私はCtrlキー+ Cを押し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
した後、私はそれがすべての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
それは、私はいくつかのキーを押して任意の時点で、それはこのループ内のすべてのジョブを行うことは可能です更新データベース、その後停止します。
でエラーをトラップしないように、時間の〜80%のみで動作します
EDIT TWOは、同時または連続的な仕事はありますか?彼らは同じ時間にまたは次々に走っていますか?これが問題なのかどうかはわかりませまた、KeyBoardInterupt以上をキャプチャしようとしていますか? – JimmyNJ
スリープ状態になったら、 '' 'time.sleep(0.00001)' 'などのようにして気付かないようにしてください。 – SH7890
睡眠のテクニックは、睡眠中に休憩が起こることを望んでいるので危険です。しかし、そうではないかもしれません。 –