我在documentation中看到了一种非常简单的方式来发送有关Flask错误的电子邮件。我的问题是这是否会对应用程序的性能产生很大影响?在运行我的应用程序实际发送电子邮件的过程中是什么?
我目前的预感是因为SMTP是在另一个进程上运行的服务器,它会正确地将电子邮件排入队列并在可能的情况下发送,这意味着它不会影响应用程序的性能。
答案 0 :(得分:1)
好吧,SMTPHandler
inherits from logging.Handler
。查看logging.Handler
,虽然在多个线程中处理调用会做几件事,但它不会对生成多个线程做任何事情。日志记录调用发生在调用它们的线程中。因此,如果我正确地读取代码,日志记录调用将阻止它运行的线程直到它完成(这意味着如果您的SMTP服务器需要30秒来响应您的错误线程将需要{ {1}}。)
那就是说,我可能会误读代码。但是,您最好使用SysLogHandler
并让time_to_error + 30 seconds + time_to_send + time_to_respond_to_request_with_500
处理向您发送带外信息。