Django信号-在同一模型上有多个请求?

时间:2018-10-12 13:38:24

标签: python django django-rest-framework django-signals django-middleware

我正在使用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次,并且set_user方法被调用 9次

根据我的理解,每个请求都应该独立运行,但是显然并非如此。是我缺少了什么,还是可以更改我的代码来解决此问题?

0 个答案:

没有答案