Başvurumda ortak bir nesnenin durumu istekte bulunarak değiştiriliyor ve yanıt duruma göre değişiyor.
class SomeObj():
def __init__(self, param):
self.param = param
def query(self):
self.param += 1
return self.param
global_obj = SomeObj(0)
@app.route('/')
def home():
flash(global_obj.query())
render_template('index.html')
Bunu geliştirme sunucumda çalıştırırsam, 1, 2, 3 ve benzerlerini almayı bekliyorum. Aynı anda 100 farklı müşteriden istekte bulunulursa bir şeyler ters gidebilir mi? Beklenen sonuç, 100 farklı müşterinin her birinin 1'den 100'e kadar benzersiz bir sayı görmesi olacaktır. Veya bunun gibi bir şey olacak:
- İstemci 1 sorguları.
self.param
1 artırılır. - Return ifadesi çalıştırılmadan önce, iş parçacığı istemciye 2. geçer
self.param
. - İş parçacığı istemci 1'e geri döner ve istemciye örneğin 2 sayısı döndürülür.
- Şimdi iş parçacığı istemci 2'ye taşınır ve ona 3 sayısını verir.
Yalnızca iki müşteri olduğu için, beklenen sonuçlar 2 ve 3 değil 1 ve 2 idi. Bir sayı atlandı.
Başvurumu büyüttüğümde bu gerçekten olacak mı? Küresel bir değişkene hangi alternatiflere bakmalıyım?