Django'da bir tür kapatma kancası ile çözülebileceğimi umduğum bir sorun var.Django Framework - Abone olunabilecek bir kapatma olayı var mı?
Python/Django geliştirmeye hala yeni başladım ve öğrenmeye yardımcı olmak için kendimi tarayıcıda çalışan bir COMET/Ters Ajax stili sohbet sitesi geliştirme projesi hazırladım. Tarayıcı sürekli olarak herhangi bir mesaj için sunucuyu yoklar. Sunucu bir anket isteği aldığında, bekleyen herhangi bir mesaj olup olmadığını kontrol eder ve eğer hiç değilse, daha önce edinilmiş olan threading.Lock nesnesinde bir kilit elde etmeye çalışır. Bu, bir mesaj alınana ve daha önce bahsedilen kilit serbest bırakılıncaya kadar talebin idare edilmesine neden olan ipliğe neden olur.
Sunucuyu kapattığımda sorunum oluşuyor. Bu noktada geliştirme sunucusunu kullanıyorum (python manage.py runserver). Yukarıda açıklanan işlemden engellenmiş bir iş parçacığı varsa, sunucu kapanmaz.
Sunucu beklemeyi denediğinde, herhangi bir bekleyen ileti dizisini serbest bırakmam için kod çalıştırabilmemin bir yolu var mı?
Aşağıdaki similar question'a baktım, ancak bana yardımcı olmadı. Böyle bir olay çengelinin bulunmadığına dair spekülasyonlar vardı, ancak kesin bir cevap yoktu. Yüksek ve alçak gönüllü oldum, ama hiç şansın olmadı.
Python 2.7 ve Django 1.5 kullanıyorum. Herhangi bir yardım için Minnettar
ben bir kapatma olayı bilmiyorum
Tam olarak bunun nasıl uygulandığından ve bunun işe yarayacağından emin değiliz, ama onu oraya koyacağım - tüm ileti dizilerinin okuyacağı ve "Oh, muhtemelen durmalıyım" şeklinde anlayacağı bir ileti var mı? – dmg
@DJV: Ama bu mesajı nasıl göndermeyi bilirdim? –
Gerçekten emin değilim, dev sunucusu için Ctrl + C' (a.k.a. 'KeyboardInterrupt') için bir tür tutamaç. Farklı sunucular için belki farklı bir yaklaşım düşünülebilir.Bunun genel bir yaklaşım olmadığını ve Django aracılığıyla yapılmadığını, ancak "Ben sadece oraya attığımı" söylediğim gibi anlıyorum. – dmg