以下のPostでデータで取得する際に、なぜか処理が止まってしまいます。毎回ではなく、数10回に1度、本当にごくまれに処理が止まります。
While True:
<<中略>>
print("Trace#1")
r5 = s.post(url, headers=headers, json=payload, timeout=(20,20))
print("Trace#2")
<<中略>>
前後にprintでメモを書いてみたところ、Trace#1 と表示されたところで処理が止まっているように見えます。
毎回エラーが起きるのではなく、数10回に1度という頻度で処理が止まるので、
大体はうまく動作しているんです。
何かWidonws10上で動かしていますが、OS側に問題があるとか、Pythonでの書き方に問題があるなど、どうかアドバイスいただけませんか。Tryを使ったりしたんですがやはり「稀に」という頻度で処理が止まります。
Enter Keyを押せば、処理が再開されるようで、エラーメッセージも吐き出されていない状況です。
”フリーズ”とはどういう状態ですか? Windowが止まるんですか? 待ってれば動き出すんですか?
「毎回エラーが起きるのではなく」ということはpythonのエラーなんですか? いまいち状況が分かりません。
失礼しました。
Python ファイルをCMDから起動しています。何度もループするように作っています。ほとんどが問題なく処理が進み、きちんとループしているんですが、数10回に1回または数100回に一度?ごくまれに、Trace#1を表示したあと、CMD上で処理が止まっているように見えます。
Enter Keyを押すと再開します。
フリーズという表現がまずかった申し訳ありませんでした。
「CMD上で処理が止まっているよう」のときのメモリの状態等を確認してみてはどうでしょうか?
pythonのコードはインデントが命ですので、コードは適切にマークダウン使って整形してください。
https://teratail.com/help/question-tips
問題については、指定のURLへ、何度も(while)でPOSTを送信しているのですよね。恐らくですが、同じマシンから何度も連続して接続しているので、一時的にTCPのコネクションが使えなくなっている気がします。しばらく(数分)待つとまた動き始めたりしませんか。また、コマンドプロンプト上からnetstatコマンドで見て、大量に TIME_WAIT状態のものが残っていたりしないか確認してみてください。
必要最小限のコードにして試すと良いと思います。必要最小限のコードにするにあたり、問題点も絞り込めますし、このような場所で質問する際にも再現コードとしてそのまま提示しやすくなります。
あなたの回答
tips
プレビュー