nakashima723 / P2Pcrwlr

P2Pクローラ
https://twitter.com/nakashima723
Other
0 stars 0 forks source link

実行中のタスクを即時停止できるようにする #44

Open nakashima723 opened 1 year ago

nakashima723 commented 1 year ago

現在scraper.pyとcollector.pyは、P2Pcrwlrの初回起動時、およびその後一定時間おきに実行されるようになっていますが

・メインウィンドウを×ボタンで閉じる ・「いますぐ巡回」ボタンでタスクを再起動する

などしても、UIが固まったまま、一周分はタスクが実行されてしまうようです。

「現状のまま、即時停止できない仕様にする」という対応もあるかもですが いずれにせよ、別の原因でタスクが強制停止した場合の証拠ファイルの動きなども見なければいけないと思われるので、即時停止する方法をいったん実装したいです。

チャッピーに聞いて以下のようなコードを collector.py の冒頭に入れて試してみましたが、うまくいきませんでした。

#task_handlerからシグナルを受け取ったとき即時停止
def handler(signum, frame):
    print("Signal received, exiting...")
    exit(0)

signal.signal(signal.SIGINT, handler)