मैं वर्तमान में कार्यकर्ता socketio.sgunicorn.GeventSocketIOWorker का उपयोग कर gunicorn सर्वर के साथ कई कार्यकर्ताओं भर gevent-socketio पैमाने पर करने के कोशिश कर रहा हूँ के साथ विफल रहता है। जब मैं मौजूद हूं तो मैं websockets का उपयोग कर रहा हूं अन्यथा मैं एक्सएचआर-मतदान (आईई आदि के लिए) मजबूर कर रहा हूं।gevent-socketio के साथ एकाधिक कार्यकर्ताओं क्योंकि सत्र के XHR-मतदान परिवहन
एक्सएचआर-मतदान को निम्नलिखित चुनावों का ट्रैक रखने के लिए एक सत्र की आवश्यकता है, लेकिन जैसे ही मैं एक या दो से अधिक श्रमिकों से जाता हूं, अनुरोध स्वयं के बीच फैलता है जिसका मतलब है कि राज्य खो गया है और सबकुछ टूट जाता है।
मुझे लगता है कि कोड के निम्नलिखित लाइनों प्रासंगिक है: https://github.com/abourget/gevent-socketio/blob/master/socketio/handler.py#L104-106 मैं मैं उदाहरण redis जो मैं नियमित pubsub-कार्यों के लिए उपयोग कर रहा हूँ के लिए, कुछ अन्य भंडारण इंजन की जरूरत है, लेकिन यह गहरी वास्तविक पुस्तकालय के अंदर है लगता है।
तो मेरे सवाल है कैसे मैं अपने आवेदन में विश्व स्तर पर एक और बैकएंड इंजन के लिए इन-स्मृति सत्र भंडारण से जाते हो पुस्तकालय खुद को संशोधित करने के बिना (यह शान से ऊपर के लिंक में सत्र कोड को ओवरराइड करता है?) ? Something like PHP's session directives in php.ini। मुझे लगता है कि एक तर्क दिया जा सकता है कि यह एक बहुत ही सामान्य पायथन प्रश्न है लेकिन मुझे प्रासंगिक जानकारी खोजने में परेशानी हो रही है, और मुझे यह भी अनिश्चितता है कि यह इस पुस्तकालय के लिए काम करेगा।
या वैकल्पिक रूप से, मैं विभिन्न श्रमिकों और सर्वरों (बिना चिपचिपापन के) में गीवेंट-सॉकेटियो के एक्सएचआर-मतदान परिवहन का उपयोग कैसे करूं?
धन्यवाद!
बस एक विचार: कुकीज़ में सत्र-विशिष्ट जानकारी रखें? एक प्रकार का आरईएसटी। –
@moodh क्या आपने कभी इसे हल किया है? साथ ही, क्या कई श्रमिक वास्तव में वैसे भी मदद करते हैं? गेवेन्ट स्वयं ही एक ही घटना लूप में कई कॉलों को संभालने में बहुत अच्छा काम करता है। – pors
नहीं, मैंने छोड़ दिया और इसके बजाए http://pusher.com/ का उपयोग करना शुरू कर दिया। इस समस्या के बारे में gevent-socketio (https://github.com/abourget/gevent-socketio/issues/112) में कुछ टिकट हैं लेकिन मुझे नहीं पता कि वे कितने दूर आए हैं। क्षमा करें :) – moodh