私はsockets
Pythonスクリプトで、おそらく20/sの山を使用しています。これらは一時的なもので、3秒で完了します。私はsocket.close()
すべてに送信するのに良い仕事をしようとしましたが、何らかの理由CLOSE_WAIT
でステータスがsockets
まだ積み重なっています。
これらを強制終了するにはどうすればよいCLOSE_WAIT
sockets
ですか?または、それらに低い値を設定できtimeout
ますか?それらは、クラッシュするまで積み重なってしまいます。
これは私のソケットコードです:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.settimeout(2) # 2 seconds timeout
l_onoff = 1
l_linger = 0
s.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, struct.pack('ii', l_onoff, l_linger))
self.s = s
streamloop.add_callback(self.connect, s)
これは私の終わりです:
def full_close(self):
try:
self.stream.close()
self.s.close()
except Exception:
print 'full_close err: ', sys.exc_info()[1:3]
pass