私は、米国とEUの両方のサーバーにアクセスするWebスパイダーを作成しました。米国とEUのサーバーは同じデータ構造ですが、その内部に異なるデータがあります。すべてを照合したいと思います。サーバーに親切にするために、各要求の間に待機時間があります。プログラムはまったく同じで、処理を高速化するために、私はプログラムをスレッド化して、EUと米国のサーバーに同時にアクセスできるようにしました。自己修復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'メソッドで囲むことは考えていませんでした。ありがとう! – cflewis