私はマルチスレッドPythonプログラムを持っていますが、ローカルURL(http://testing.com/sendMessages_mock.php)との接続を継続して開き、WAMPをインストールしてsendMessages_mock.phpテスト目的のためにローカルのファイル。時々、私は「接続していません[errnoが10061]対象のコンピュータによって拒否されたため、」を取得Python:ターゲットマシンが積極的にそれを拒否したため、接続できませんでした
を各スレッドには、この関数を呼び出します。 1秒ごとに、この関数を呼び出す数百のスレッドがあります。いくつかのスレッド呼び出しに対してのみこの例外を取得します。これについての考えは?
def sendMessage(body):
try:
request = Request(url="http://testing.com/sendMessages_mock.php", data=json.dumps(body))
request.add_header('Authorization', 'key=' + CONST.API_KEY)
request.add_header('Content-Type', 'application/json')
response = urlopen(request)
responseData = response.read().decode('utf-8')
except Exception as exceptionErr:
print("Oops! " + str(traceback.format_exc()))
サーバ側は接続をリッスンしますが、 'listen'コールにはまだ受け入れられていない受信接続要求の最大数であるバックログがあります。その要求キューが大きすぎると、サーバーのTCPスタックが接続を拒否することがあります。それはおそらくあなたが見ているものです。おそらく、より多くのバックログ用にサーバーを構成することもできますが、これは通常のバックプレッシャーでクライアントに少し冷やすように伝えていると考えられます。 – tdelaney