2017-11-10 6 views
0

私はスレッドを生成するスクリプトを持っており、各スレッドはWeb要求を送信し、応答を分析します。エラーが発生した場合、スレッドは数秒待って同じリクエストを再試行します。すべてのリクエストは同じドメインに向けられています。スクリプトを開始してCurrPortsを開くと、私の総ポート数は10000まで増え続け、開いているポートが増え、最終的にはアダプタがハングすることがわかります。奇妙なことに、スレッドは正常に動作します。データを収集/分析して移動します。しかし、彼らは開いた港や何かを残しているようだ。誰でも何が起こっているかについてのアイデアはありますか?ここでPythonスクリプトは何千ものポートを作成しますが、どうすれば解決できますか?

は、開いているすべてのポートを示すスクリーンショットである:

ここ

enter image description here

は何千回も繰り返されている私が見る二つの主要なエントリです:

以下
Unknown 0 TCP 57660  192.168.1.118 443 https 52.84.14.175 server-52-84-14-175.ord54.r.cloudfront.net Time Wait      N/A    9 Nov. 2017 9:40:29 PM    
Unknown 0 TCP 58506  127.0.0.1 8888  127.0.0.1 PC Time Wait      N/A    9 Nov. 2017 9:40:29 PM    

は関連性があります私のコードのセクション:

while(True): 
    try: 
     r = requests.post(url, headers=headers, data=data.encode('utf-8'), timeout=10) 

     ### Do stuff. If request is valid, break. ### 

    except Exception as e: 
     with open(log_file,'a') as f: 
       f.write(str(e) + '\n') 
     time.sleep(15) 

私はfiタイムアウトを追加すると私のジレンマが解決されるとは思っていましたが、そうではありませんでした。どんな啓発も大変ありがとうございます。誰もが気をつけてください。

答えて

0

これらの接続は開いていないため、「時間待機」状態になっています。これは、クライアントがクライアントを閉じたが、最小限の時間を待つ必要があることを意味します。あなたは、これはここで、なぜ起こるかについての詳細を読むことができます:

+0

ありがとうございました。それが私を解決に導いた。とても有難い! – abaux

関連する問題