2012-06-09 11 views
17

बहुत खोज और गुगल होने के बाद मैं अच्छी तरह से वापस आ रहा हूं। मेरे पास Django 1.4 है और मैं सभ्य काम कर रहा हूं उदाहरण के लिए Django को gevent के साथ काम करने के लिए यह पता लगाने के लिए। मुझे Django framwork पसंद है लेकिन मुझे लंबे मतदान को संभालने की आवश्यकता है। मेरे पास पहले से ही एक गेविंट का उपयोग कर एक कार्यकारी सर्वर है जो लंबे मतदान अनुरोधों को संभालने के साथ-साथ लगभग 10 फ्रेम/सेकेंड पर http के माध्यम से छवि स्ट्रीमिंग करता है। मैं इस भाग के लिए एक ढांचा प्रदान करने के लिए Django में सभी उपहारों का उपयोग करना चाहता हूं।django प्लस gevent मूल बातें कैसे गठबंधन करने के लिए?

वहां कई उदाहरण हैं, लेकिन दुर्भाग्यवश इनमें से कोई भी बॉक्स से बाहर काम नहीं कर रहा है! यह वास्तव में यह समझने के लिए एक कामकाजी उदाहरण करने में मदद करेगा कि ये दोनों चीजें एक साथ कैसे काम कर रही हैं।

http://codysoyland.com/2011/feb/6/evented-django-part-one-socketio-and-gevent/ समस्या: ImportError: सेटिंग्स 'webchat.settings' (? यह sys.path पर है) आयात नहीं कर सके: नहीं मॉड्यूल नामित webchat

यहाँ मैं अब तक क्या पाया है और समस्याओं है .settings

https://github.com/codysoyland/django-socketio-example/blob/master/README.rst समस्या: स्थापना अनुमति समस्या gevent मैन्युअल Git हब से इसे प्राप्त करने की कोशिश की हो रही है के साथ विफल रहता है। उदाहरण चलता है, लेकिन ब्राउज़र कनेक्ट होने पर इन त्रुटियों को उत्पन्न करता है।

ये जानकारीपूर्ण हैं लेकिन मूल उत्तर प्रदान नहीं करते हैं। Need help understanding Comet in Python (with Django) https://bitbucket.org/denis/gevent/src/tip/examples/webchat/chat/views.py http://blog.gevent.org/2009/10/10/simpler-long-polling-with-django-and-gevent/

मैं क्या आशा है कि किसी को समझा सकता है (कृपया, सुंदर कृपया ....) यह है: - यहाँ ट्यूटोरियल https://docs.djangoproject.com/en/1.4/intro/tutorial01/ उत्कृष्ट है मैं एक बुनियादी साइट Django 1.4 का उपयोग कर बनाया है। तो अब मुझे समझने की जरूरत है कि भूगर्भ का उपयोग करने के लिए क्या परिवर्तन करना है और असीमित घटनाओं को संभालने में सक्षम होना चाहिए। मुझे यकीन है कि यह मुश्किल नहीं है - मुझे बस किसी ऐसे व्यक्ति की आवश्यकता है जो यह समझाने के लिए समझें कि क्या करना है और क्या हो रहा है (बंदर_पैच जैसी चीजों के साथ)।

धन्यवाद।

उत्तर

20

यहाँ कैसे मैं gevent + बंदर पैचिंग के साथ Django चलाने है:

  1. मैं manage.py तो संशोधित कर लिया है पहली पंक्ति (कुटिया के बाद) from gevent import monkey; monkey.patch_all()

  2. मैं एक नया run_production_server जोड़ दिया है लिपि (नीचे देखें)।

अंत में, मैं बंदरगाह 1234 (बंदरगाह जो run_production_server पर सुन रहा है) करने के लिए प्रॉक्सी अनुरोध करने के लिए मेरे सामने के अंत वेब सर्वर कॉन्फ़िगर कर दिया है।

from gevent import monkey; monkey.patch_all() 
from gevent.wsgi import WSGIServer 

from django.core.management import setup_environ  
import settings 
setup_environ(settings) 

from django.core.handlers.wsgi import WSGIHandler as DjangoWSGIApp 
application = DjangoWSGIApp() 
server = WSGIServer(("127.0.0.1", 1234), application) 
print "Starting server on http://127.0.0.1:1234" 
server.serve_forever() 

कुछ शिकायत हो सकता है कि इस सर्वर "वेब पैमाने" पर्याप्त नहीं है। मुझे संदेह है कि वे साबित करने के लिए मानक प्रदान करने में सक्षम होंगे, लेकिन यदि आप चिंतित हैं तो आप अपने सर्वर के लिए gunicorn या uwsgi का भी उपयोग कर सकते हैं। लेकिन यह मेरे लिए ठीक काम करता है।

+0

स्क्रिप्ट के लिए धन्यवाद, यह एक बड़ी मदद है। लेकिन, मैंने यह कोशिश की है और मुझे लगता है कि मुझे कुछ याद आ रहा है। मैं डिफ़ॉल्ट django 1.4 परियोजना से शुरू कर रहा हूँ।मैं% python manage.py runerver 0.0.0.0:8000 के साथ सर्वर शुरू कर रहा हूँ। मैं आपके द्वारा प्रदान की गई स्क्रिप्ट का उपयोग कैसे करूं? –

+0

इसके उपयोग का क्या हिस्सा आपको अनिश्चित है? –

+0

गूंगा प्रश्न पूछने के लिए खेद है .... जब मैं manage.py का उपयोग करके चीजों को शुरू करता हूं तो मुझे यह स्क्रिप्ट चलाने के लिए कैसे मिलता है? मैं अभी django wsgi दस्तावेज़ देख रहा हूं और यह wsgi.py का उल्लेख करता है - क्या यह आपकी स्क्रिप्ट को जाना चाहिए? –

संबंधित मुद्दे