उम्मीद है कि मैं इसे अच्छी तरह से समझा सकता हूं। मैं ऑब्जेक्ट उन्मुख तरीके से PHP library to handle ajax requests through PHP बनाने पर काम कर रहा हूं। मैं वर्तमान में एक लंबे मतदान समाधान को लागू करने के लिए एक अच्छा तरीका सोच रहा हूं लेकिन कुछ के बारे में उत्सुक हूं।अपाचे पर PHP के साथ लंबे मतदान
अपाचे कई कनेक्शनों को बहुत अच्छी तरह से खोलने में संभाल नहीं करता है। थ्रेड-प्रति-अनुरोध मॉडल लंबे मतदान के लिए अपाचे को अत्यधिक अक्षम बनाता है। सर्वर का उपयोग जैसे कि nginx और lighttpd लाइब्रेरी में इन धागे को बेहतर तरीके से संभालते हैं, मैं एक फ़ंक्शन कॉल से उपलब्ध विशिष्ट सर्वरों के लिए अनुकूलित विभिन्न कार्यों को लागू करने की योजना बना रहा हूं। अपाचे के मामले में, जो PHP अनुप्रयोगों के लिए एक विशाल बाजार हिस्सेदारी रखने के लिए होता है, मुझे एक बेहतर समाधान की आवश्यकता है।
क्या होल्डिंग/रोक पर आने वाले अनुरोध को रखने का कोई तरीका है और जब तक मैं इसे पुनः सक्रिय करने के लिए तैयार नहीं हूं, तब तक अन्य अनुरोधों को संसाधित करना जारी रखें?
मुझे यकीन नहीं है कि यह समझ में आता है या यदि मैं सही रास्ते पर भी हूं। एक संभावित समाधान क्या है कि एसओपीएपी सर्वर पर PHP में लंबे मतदान के लिए अनुशंसा करता है?
आप सर्वर पर प्रसंस्करण क्यों रोकेंगे? क्या यह आपके उपयोगकर्ता को बहुत इंतजार नहीं करेगा? – Joseph
अपाचे के साथ, यह थ्रेड-प्रति-अनुरोध मॉडल का उपयोग करता है, इसलिए किसी एप्लिकेशन में प्रारंभिक पृष्ठ अनुरोध थ्रेड का उपयोग करता है, और उसके बाद AJAX अनुरोध (जिसे DOM लोड किया जाता है) एक अलग थ्रेड का उपयोग करेगा। समस्या उच्च मात्रा यातायात का प्रयास कर रही है हजारों धागे पैदा करेगा और आखिरकार सर्वर को अक्षम कर देगा। –
AJAX/PHP लंबे मतदान पृष्ठ लोड को यादृच्छिक रूप से शुरू करने के बाद हमें एक ही समस्या थी (सीसीए प्रत्येक 4-5 लोड) बहुत अधिक समय ले रहा है ... अभी के लिए और केवल नोटिस के लिए मैंने इसे नींद नहीं किया() PHP में किसी भी तरह से, और timewait कार्यक्षमता जावास्क्रिप्ट में ले जाया गया, तो अब जावास्क्रिप्ट प्रत्येक PHP नए निष्पादन का अनुरोध कर रहा है उदाहरण के लिए 10s लेकिन पेज लोड अब ठीक लगता है। –