コンテキスト:
ダウンロードが必要な URL の単純なキューを監視する、無期限に実行されるスクリプトがあります。URL がキューに入ると、スクリプトはその URL のスレッドが既に作成されているかどうかをチェックし、作成されていない場合は、URL が 404 を返すまで定期的にその URL からデータをフェッチするスレッドを作成します (これは私がURLは指定された期間しか利用できないため、発生することがわかります)その時点で、呼び出しsys.exit
てSystemExit
例外を発生させ、本質的に終了のマークを付けます。
質問:スレッドが終了した特定の時間をログに記録できるようにしたいと考えています。これは、呼び出し以外の理由でスレッドが終了した場合でも、スレッドが終了した理由sys.exit
に関するメタデータをできるだけ多く収集できるようにしたいと考えています。これを行う最善の方法は何ですか?スレッドは終了時にスレッドを生成した親に情報を渡しますか?
コード:
コードの簡単な例
class MyThread(threading.Thread):
def __init__(self, sF, id):
threading.Thread.__init__(self)
self.sourceFile = [sF]
self.id = id
def run(self):
#do stuff until i encounter a 404, at which point, I'll call sys.exit
if __name__ == '__main__':
while True:
#logic to check the queue, if there is a new url, spawn a new Thread
#for each new thread in the queue:
t = MyThread(file, i)
t.start()
threads.append(t)