Skip to main content
 首页 » 编程设计

python之Flask之请求完成后订阅日志的正确信号

2025年05月04日35davidwang456

我想将请求(即用户页面浏览量)记录到数据库,但我只想在请求完成且数据成功发送到客户端后将请求元数据记录到数据库。

flask request_tearing_down 是正确的订阅信号吗? request_finished 怎么样?

请您参考如下方法:

看起来你不想request_finished。来自文档:

This signal is sent right before the response is sent to the client.

据我所知,request_tearing_down 在发送响应之前也会被触发。

我不认为存在一个特定的信号,您可以在响应发送后订阅它来做某事。您可以修改 Flask 的代码以自己添加一个。

最好的选择可能是使日志记录异步发生,这样就不会延迟响应。您可以自己使用线程或子进程执行此操作,或者您可以使用像 Celery 这样的库为您做一些工作。

另见 this question