मैं ऐसे एप्लिकेशन पर काम कर रहा हूं जो अमेज़ॅन के एमडब्ल्यूएस एपीआई का उपयोग ज्यादातर PHP में लिखा गया है। यह एप्लिकेशन अमेज़ॅन विक्रेताओं को साइन अप करने की अनुमति देता है, कुछ अमेज़ॅन विक्रेता प्रमाण-पत्र प्रदान करता है और एप्लिकेशन अमेज़ॅन से इस उपयोगकर्ता के ऑर्डर को एक MySQL डेटाबेस में रखने के लिए शुरू होता है।PHP में एसिंक्रोनस फ़ंक्शन चलाने का सबसे प्रभावी तरीका क्या है?
मैंने एकाधिक कार्यों के साथ एक स्क्रिप्ट का उपयोग कर डेटा को सटीक रूप से डेटा सिंक करने के तरीकों का निर्माण किया है, लेकिन ध्यान दिया कि यह बहुत लंबा रास्ता लेता है। यह स्क्रिप्ट डेटाबेस में सभी उपयोगकर्ताओं के माध्यम से बस लूप करती है और एक ही समय में सभी ऑर्डर को पुन: सक्रिय करती है। अभी, केवल 5 परीक्षण उपयोगकर्ताओं के साथ, समय करने योग्य है लेकिन मैं एक और अधिक विस्तार योग्य विधि की तलाश में हूं। 500 उपयोगकर्ताओं को एक समय में सिंक्रनाइज़ रूप से चल रहे सभी के बारे में सोचें। बहुत लंबा रास्ता!
मैं PHP के लिए काफी नया हूं और विशेष रूप से इससे असीमित प्रक्रियाएं चला रहा हूं। एकमात्र तरीका मैंने पाया है कि मैं ऐसा कर सकता हूं एक स्टार्टर स्क्रिप्ट है जो डेटाबेस में सभी उपयोगकर्ताओं को पाती है और प्रत्येक उपयोगकर्ता के लिए एक सिंक स्क्रिप्ट स्पॉन्स करती है, फिर इसे रिलीज़ करती है। मुझे यह विचार पसंद नहीं है क्योंकि अगर मेरे पास 500+ उपयोगकर्ता थे, तो मेरी रात की सिंक में इस PHP स्क्रिप्ट के 500 स्पॉन्ड उदाहरण होंगे।
क्या किसी ने इससे पहले ऐसा कुछ किया है? यदि ऐसा है, तो मुझे यह जानना अच्छा लगेगा कि इस सिंक को और अधिक कुशल बनाने के लिए सबसे अच्छा तरीका है।
मैंने कभी भी HTTPRequestPool क्लास के बारे में नहीं सुना है। धन्यवाद!हालांकि, इससे मैं यह समझ सकता हूं कि इसे एसिंक्रोनस HTTP अनुरोध भेजने के लिए कैसे प्राप्त किया जाए, लेकिन मुझे प्रत्येक परिणाम को संसाधित करने की भी आवश्यकता है जिसे मैं अलग से प्राप्त करता हूं। क्या यह किया जा सकता है? –
मुझे विश्वास है। क्या आपने डॉक्स पढ़ा है? विशेष रूप से "getFinishedRequests" विधि देखें - http://www.php.net/manual/en/function.httprequestpool-getfinishedrequests.php – rICh