python マルチスレッド操作エラー。logger "websocket "のハンドラが見つかりませんでした。
2022-02-12 07:30:58
pythonを使ってトランシーバーオンラインツールのシミュレーションをしたところ、サーバーの最大接続成功数が1020接続となり、このボトルネックの原因を突き止めなければなりません
1. 接続に失敗したときに報告されるエラーメッセージは
logger "websocket"のハンドラが見つかりませんでした。
回避策
インポートロギング
logging.basicConfig()
2. 上記問題を修正した後に得られた具体的なエラーメッセージは以下の通りです。
ERROR:websocket:error from callback <bound method pressure_webSocket.on_error of <lib.protocol.pressure_webSocket instance at 0x7f9b4415a248>>: cannot concatenate 'str' and 'exceptions.ValueError' objects
解決方法 ウェブソケットのコールバック処理関数内のエラーデータを文字列に変換してから接続するようにしていない。
def on_error(self,ws,error):
log.error(エラー)
として、修正に従います。
def on_error(self,ws,error):
log.error(str(error))
3. ウェブソケットコールバックに例外データの処理の修正を追加した後、プログラムは以下のエラーメッセージを報告します。
Error# filedescriptor out of range in select()
エラーの原因 python socketモジュールがselectモジュールのソースコードを呼び出し、selectコールを実行した際に1024より大きなfdが渡され、上記エラーとなる。
4. ショートリンクを多用するため、1プロセス内のfd数が1024の制限を超えて増加し、冒頭のような例外が発生する。
回避策
(1) この値はカーネルで定義されているため、現在の解決策を維持したままこの問題を解決するには、この値を増やすためにLinux-kernelを再コンパイルする必要があります。
(2) stpclientのクライアント側で、fdの数が少なく、性能に問題がなく、他のプラットフォームでもselectがサポートされていたため、古いselectの代わりにepollを使用するように修正すること。
関連
-
解決済みお客様のCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
Pythonがエラーを報告する AttributeError:'numpy.ndarray' オブジェクトに 'index' という属性がない
-
仮想環境を作成するコマンドが見つからない virtualenv: コマンドが見つからない
-
virtualenvwrapperのコンフィギュレーションエラー
-
[コード】pygame 学習
-
Python Djangoプロジェクトログクエリシステム
-
Pythonのsum関数でTypeError: unsupported operand type(s) for +: 'int' and 'list' エラーを解決する。
-
Pythonのエラーについて。TypeError: += でサポートされていないオペランドタイプ: 'builtin_function_or_method' および 'int' です。
-
Python ネットワークリクエストのエラー "ConnectionRefusedError: [WinError 10061] ターゲットコンピュータがアクティブに拒否したため接続できません"
-
パイソン] Python パイソンミニゲーム - 欲張りスネークアドベンチャー
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
チェックされていないruntime.lastError: 接続を確立できませんでした。受信側が存在しません。
-
Python_matplotlib の凡例は外側に保存すると不完全になる
-
ERROR: 要件ファイルを開くことができませんでした。[Errno 2] そのようなファイルまたはディレクトリがありません: 'requirements.txt'.
-
Pandasの属性エラーです。AttributeError: 'Series' オブジェクトに 'reshape' 属性がない Solution
-
ImportError: torchvision という名前のモジュールがありません。
-
PyChamの「AttributeError:module 'pip' has no attribute 'main'」エラー解決法
-
TypeError: 'builtin_function_or_method' オブジェクトは反復可能ではありません。
-
Python で実行 TypeError: + でサポートされていないオペランド型: 'float' および 'str'.
-
plt.acorr() 関数の使用例 - ValueError: object too deep for desired array (オブジェクトが深すぎて、必要な配列が得られない)
-
[解決済み] です。TypeError: read() missing 1 required positional argument: 'filename'.