python - Django信号-同一模型上的多个请求?
问题描述
我正在使用pre_save
信号来存储对特定实例执行最后一次操作的用户。
为此,我使用了一个中间件。在它的process_request
函数中,将信号注册到相应的函数中,set_user
如下图所示。
mark_who_did = curry(self.set_user, user)
models.signals.pre_save.connect(
mark_who_did,
dispatch_uid=(self.__class__, request,),
weak=False
)
然后,我在process_response
中间件的功能中断开了这个信号。
models.signals.pre_save.disconnect(dispatch_uid=(self.__class__, request,))
当不涉及并发时,这可以正常工作。但是,假设我们有 3 个并发请求 -对于每个用户请求组合,信号连接 3 次,set_user
方法调用9 次。
根据我的理解,每个请求都应该独立运行,但显然不是这样。有什么我遗漏的东西,或者我可以在我的代码中改变什么来解决这个问题吗?
解决方案
推荐阅读
- powerbi - 如何将 If ISBLANK 和 Concatenate 添加到 PowerBI 中的函数
- node.js - 将 js 转换为 ts 时如何在 Typescript 上修复 @ts-expect-error ts-migrate(2571)
- android - 如何在 jetpack compose 中使用 MotionLayout、MotionScene、ConstraintSet?
- python - 如何根据顺序合并熊猫中的两个数据框
- sql - 如何将计数值分组到恰好 1、2 到 5、超过 5 的范围
- python-3.x - 如何用定时器函数包装两个互连值的输入函数?
- python - oracle如何导出整张表
- python - 我有什么办法可以重定向到这个新窗口吗?
- python - 如何使用 python 3 更快地将批量 csv 数据插入 SQL Server
- c# - 为 Azure 函数重用 ABP 框架的依赖项