1

ドキュメントで、Flask エラーに関するメールを送信する非常に簡単な方法を見ました。私の質問は、これがアプリのパフォーマンスにかなり影響するかどうかです。のように、私のアプリを実行しているプロセスは実際にメールを送信していますか?

私の現在の推測では、SMTP は別のプロセスで実行されているサーバーであるため、電子メールを適切にキューに入れ、送信できるときに送信します。つまり、アプリのパフォーマンスには影響しません。

4

1 に答える 1

1

さて、SMTPHandlerから継承しlogging.Handlerます。を見ると、複数のスレッドで呼び出さlogging.Handlerれたことを処理するためにいくつかのことを行いますが、複数のスレッドを生成することは何もしません。ロギングの呼び出しは、呼び出されたスレッドで発生します。したがって、コードを正しく読んでいる場合、ロギング呼び出しは、それが完了するまで実行中のスレッドをブロックします (つまり、SMTP サーバーが応答するのに 30 秒かかる場合、エラー スレッドは.time_to_error + 30 seconds + time_to_send + time_to_respond_to_request_with_500

つまり、コードを読み間違えている可能性があります。ただし、帯域外のメッセージの送信を使用SysLogHandlerして処理させる方がよいでしょう。syslog

于 2013-05-10T02:17:12.697 に答える