मेरे पास एक सामान्य Django साइट चल रही है। इसके अलावा, एक और मोड़ की प्रक्रिया है, जो जैबर उपस्थिति अधिसूचनाओं को सुनती है और डीजेगो के ओआरएम का उपयोग करके डीजेगो डीबी अपडेट करती है।ट्विज के भीतर से Django डीबी ऑपरेशन को कैसे रोकें?
अब तक यह काम करता है के रूप में मैं सिर्फ इसी Django मॉडल फोन (सही सेटिंग्स वातावरण की स्थापना करने के बाद)। हालांकि, यह ट्विस्ट ऐप को अवरुद्ध करता है, जो मैं नहीं चाहता हूं।
जैसा कि मैंने नए मुड़ के लिए मैं नहीं जानता, सबसे अच्छा तरीका है एक गैर अवरुद्ध रास्ता deferreds का उपयोग करने में (अपने ORM के माध्यम से) Django डीबी तक पहुँचने के लिए होगा क्या कर रहा हूँ।
- deferredGenerator?
- twisted.enterprise.adbapi? (ओआरएम को बाधित करें?)
- ???
उपस्थिति संदेश पार्स किया गया है अगर मैं Django डीबी में बचाने के लिए है कि jid_str साथ उपयोगकर्ता ऑनलाइन/ऑफ़लाइन है (Django मॉडल UserProfile
उपयोग करते हुए) चाहते हैं। मुझे लगता है कि समारोह के साथ कार्य करें:
def django_useravailable(jid_str, user_available): try: userhost = jid.JID(jid_str).userhost() user = UserProfile.objects.get(im_jabber_name=userhost) user.im_jabber_online = user_available user.save() return jid_str, user_available except Exception, e: print e raise jid_str, user_available,e
वर्तमान में, मैं के साथ यह आह्वान: "। मैं एक सामान्य Django साइट चल रहा है"
d = threads.deferToThread(django_useravailable, from_attr, user_available)
d.addCallback(self.success)
d.addErrback(self.failure)
कृपया कोड पोस्ट करें, विशेष रूप से वह हिस्सा जो आपके ऐप को "ब्लॉक" करता है। – ohnoes