0

複数のユーザーがdjangoに接続している場合、互いに遊んだり、切断して再接続したりする信号があります。同じサーバーであっても、ユーザーごとに完全に分離されていますか?

したがって、2つの信号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 に答える