上下文:
我有一个脚本,它可以无限期地运行,它监视一个需要下载的简单 url 队列。如果一个 url 进入队列,脚本会检查它是否已经为该 url 生成了一个线程,如果没有,它会生成一个线程,该线程的工作是定期从该 url 获取数据,直到 url 返回一个 404(我知道会发生,因为 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)