0

当我们有多个用户连接到 django 时,我的信号会相互播放并断开并重新连接。即使是同一台服务器,它们是否对每个用户都是完全独立的?

所以我有两个信号 A 和 B post_save
两者都在断开和重新连接时互相呼叫。

  1. A的信号:断开A,B并执行B.save()
  2. B的信号:断开A,B并执行A.save()

django 信号是否存在同步问题?如果我同时保存多个 A 和 B,django 信号是否可以处理这个问题?

我猜信号每次被调用时都有不同的“签名”。

4

1 回答 1

1

由于信号处理程序通常在加载它们所在的模块时连接,而不是在每个请求上连接,因此在运行时连接和断开它们的效果将由同一个 Django 进程处理所有用户,而不仅仅是单个请求。

Django 错误 14533似乎已经解决了一些线程安全问题,因此如果您希望它在请求之间产生副作用,这可能会起作用,但否则,您应该考虑以更传统的方式使用信号。

于 2013-03-06T01:36:57.590 回答