クラスがある場合、リクエスト中に初期化さRequestHandler
れる変数(self.var
以下)があります。その変数は並行環境で上書きできますか(threadsafe=true
)?例えば
class MyRequestHandler(webapp2.RequestHandler):
var = None
def get(self, id):
self.var = value_from_datastore(id)
# Do something that takes time
# ...
self.response.write.out(self.var)
self.response.write.out(self.var2)
メソッドself.var
の先頭に設定されてから出力で使用されるまでの間に、(おそらく別のユーザーからの)2番目の要求によって上書きできますか?get
ありがとう、
ベアード
アップデート:
var = None
私は、がインスタンス変数として宣言しているという(誤った)印象を受けました。私の(ギャップのある)誤解を訂正してくれてありがとう;-)
で「宣言」を行う場合__init__
、私はより良いですか?MyRequestHandlerがスレッドごとに作成されるのか、それともすべての共有スレッドに1つしかないのかということになると思います。さまざまなユーザーによるさまざまな要求からの干渉がまだ存在する可能性はありますか?
class MyRequestHandler(webapp2.RequestHandler):
def __init__(self):
self.var = None
def get(self, id):
self.var = value_from_datastore(id)
# Do something that takes time
# ...
self.response.write.out(self.var)
self.response.write.out(self.var2)
ありがとう、
ベアード