6

apache/mod_wsgi を介してホストされている django インスタンスがあります。信号を使用pre_saveしてpost_save、保存前後の値を保存し、後で比較できるようにします。そのために、グローバル変数を使用して、シグナル ハンドラーpre_saveでアクセスできる値を格納します。post_save

私の質問は、A と B の 2 つのリクエストが一緒になって同じ Web サービスを同時にリクエストした場合、それは同時並行になるのでしょうか? B は、A によって書き込まれたグローバル変数を読み取るべきではなく、その逆も同様です。

LockPS:変数にはスレッドを使用しません。

4

1 に答える 1

2

これは、構成によって部分的に異なりmod_wsgiます。プロセスごとに1つのスレッドのみを使用するように構成する場合、グローバル変数は安全です。ただし、さまざまな理由から、グローバル変数の使用はお勧めしません。マルチスレッド構成では、グローバル変数を使用した場合に要求が混同されないことを保証するものは何もありません。

pre_saveとの間で必要なデータを隠しておくための、よりローカルな場所を見つけることができるはずですpost_save。デザインにもう少し考えてみることをお勧めします。

于 2012-11-01T06:25:02.373 に答える