金字塔:为什么新的请求订阅者每次请求都打3次电话?

2024-10-05 14:25:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我很感兴趣,我查过了。正如您可以看到的那样,NewRequest订阅服务器在每个请求上被调用3次(或者在启用调试工具栏的情况下调用7次…),而在每个请求上调用BeforeRender订阅服务器将被调用1次(启用调试工具栏时调用30次)。在

因此,如果我想通过NewRequest事件将mongodb连接到我的项目,则每个请求将执行3次。。。在

为什么?为什么服务器应该对每个请求执行3次相同的任务?在

提前谢谢!!!在


Tags: 项目服务器mongodb事件情况工具栏beforerendernewrequest
1条回答
网友
1楼 · 发布于 2024-10-05 14:25:39

金字塔不会对每个请求多次调用NewRequest。发生这种情况的唯一原因是如果您意外地注册了多次订阅者。人们认为它被多次调用的另一个常见原因是,浏览器通常在请求后带有favicon请求,但这只占了2次调用。您是否可以显示任何输出或更详细地描述您的问题,以使我确信订阅者确实被调用了不止一次?在

BeforeRender将被多次调用(每个呈现的模板一次)。启用调试工具栏后,每个请求都会呈现大量内容,但即使是30个,听起来也比我预期的要多出3倍。在

一般来说,在NewRequest订阅服务器中连接到数据库不是一个好主意,因为该订阅服务器也是为静态资源调用的(实际上是所有请求)。一个更好的模式是通过config.set_request_propertyrequest对象上创建一个lazy/具体化属性。这将在您第一次在每个请求中使用数据库时进行连接,并且在不连接时不会造成性能损失。在

相关问题 更多 >