Я создал веб-паук, который обращается как к серверу США, так и к ЕС. Серверы США и ЕС имеют одинаковую структуру данных, но в них есть разные данные, и я хочу собрать все. Чтобы быть приятным с сервером, между каждым запросом есть время ожидания. Поскольку программа точно такая же, чтобы ускорить обработку, я проделал эту программу так, чтобы она могла одновременно обращаться к серверам ЕС и США.Самовосстанавливающиеся потоки Python
Это сканирование займет порядка недель, а не дней. Будут исключения, и пока я пытаюсь обрабатывать все внутри программы, скорее всего, что-то странное может возникнуть. Чтобы быть по-настоящему защитным, я хотел бы поймать нить, которая не удалась, зарегистрировать ошибку и перезапустить ее. В худшем случае я теряю несколько страниц из тысяч, что лучше, чем отказ потока и потерять 50% скорости. Однако из того, что я прочитал, потоки Python умирают молча. У кого-нибудь есть идеи?
class AccessServer(threading.Thread):
def __init__(self, site):
threading.Thread.__init__(self)
self.site = site
self.qm = QueueManager.QueueManager(site)
def run(self):
# Do stuff here
def main():
us_thread = AccessServer(u"us")
us_thread.start()
eu_thread = AccessServer(u"eu")
eu_thread.start()
Не думал прикладывать 'try: except:' в методе 'run', который выглядит как хороший, Pythonic способ сделать это. Благодаря! – cflewis