ホームページ >バックエンド開発 >Python チュートリアル >Python http 長い接続クライアントのサンプル チュートリアル

Python http 長い接続クライアントのサンプル チュートリアル

PHP中文网
PHP中文网オリジナル
2017-06-20 14:48:303355ブラウズ

背景:

オンラインマシンでは、アクセスログをフィルタリングして別のAPIに送信する必要があります。
最初は単一プロセスであったため、マルチプロセス送信に切り替えた後、時々異常なエラーが発生しました。ログ (スクリーンショットを撮るのを忘れました...)
要するに、ポートが不十分でエラーが報告されます

理由:

すべてのログは API に送信されるリクエストであり、接続が短いと大量の time_wait ステータスが生成されます。多くのポートを占有します
この高い同時実行性により、time_wait ステータスのカーネル調整が大量に行われます。基本的に役に立たないため、問題を解決するために後で長い接続に変更されました

短い接続バージョンの最初のバージョンのキー コードは次のとおりです。以下の通り

特定のビジネス情報を含むため、コードの重要な部分のみを掲載します

import pycurl
where True:
  url=myqueue.get()
  send_msg=pycurl.Curl()
  send_msg.setopt(pycurl.URL,url)
  send_msg.perform()
  print send_msg.getinfo(send_msg.HTTP_CODE)

修正された長い接続バージョンは次のとおりです:

リクエストライブラリの使用

import requests
client=requests.session()
headers = {'Content-Type': 'application/json', 'Connection': 'keep-alive'}
where True:
  url=myqueue.get()
  r=client.get(url,headers=headers)
  print r.status_code

以上がPython http 長い接続クライアントのサンプル チュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。