2015-07-22 6 views
7

नमस्कार सभी को नमस्कार, मैं वेबसाइट विकसित कर रहा हूं जो ट्रिवागो और होट्सकॉम्बिनेड जैसा है। मैं एक्सपीडिया, स्कूश, आफूमूम, गेटारूम, वेनेरे, होटल प्रोटो जैसे सभी एपिस से डेटा प्राप्त करने में सक्षम हूं। मैं उस बिंदु पर फंस गया हूं जहां मुझे वेबसाइट के प्रदर्शन को बनाए रखना है। मैं जानना चाहता हूं कि वेबसाइट को http://www.trivago.com, http://hotelscombined.com की तरह कैसे तेजी से बनाना है।PHP: ट्रिवागो, होटलकॉम्बिन डेटा कैसे तेजी से प्राप्त करता है

पेजिनेशन के साथ कैसे काम करें और सभी एपिस के साथ कीमतों की तुलना कैसे करें। यदि मेरे पास क्रॉन जॉब चल रहा है और डेटाबेस में डेटा को सहेज रहा है तो मेरे लिए सभी एपिस की कीमतें दिखाना और उनकी तुलना करना आसान होगा और यह तेज़ होगा। लेकिन क्रॉन नौकरी चलाने के लिए मेरे लिए बुरा विचार है, खासकर जब हम होटल एपीआई के बारे में बात कर रहे हैं क्योंकि सामग्री होटल के लिए हर बार बदलती है। क्रॉन के साथ समस्या यह है कि, हजारों शहरों हैं, डेटाबेस में कितना डेटा प्राप्त किया जाना चाहिए और कितनी बार होटल अगले 1 घंटे लगभग में बुक किए जाते हैं। यदि हम क्रॉन नौकरी चलाते हैं, और मान लीजिए कि होटल बुक किया गया था जिसे डेटाबेस में लाया गया और सहेजा गया था, उस स्थिति में मुझे इसे कैसे प्रबंधित करना चाहिए। यदि क्रॉन सवाल का उत्तर है तो हमें डेटाबेस में होटल विवरण, छवियों आदि युक्त 10 से 20 एपिस डेटा कैसे प्राप्त करना चाहिए और उन्हें प्रबंधित करना चाहिए क्योंकि दुनिया में 1 मिलियन से अधिक होटल हैं या 10 मिलियन से अधिक हो सकते हैं। इसके अलावा मामले भी हैं:

i) न्यूयॉर्क में 2 वयस्कों के लिए होटल खोजें, 1 अगस्त से 1 बच्चे 8 अगस्त तक समय की जांच करें।

ii) लंदन में 1 वयस्कों के लिए होटल खोजें, 2 अगस्त से 2 बच्चे समय की जांच करें 5 अगस्त तक समय की जांच करें। और खोज में कई मामले हो सकते हैं। तो कितनी बार और कितने मामलों के लिए हमें क्रॉन चलाया जाना चाहिए?

एक्सपीडिया के विनिर्देश के भीतर (http://developer.ean.com/spec/) यह कहा गया है अनुरोधों की संख्या की एक सीमाओं है कि वहाँ: - होटल सूची अनुरोध: 5000: 1 - कमरे में उपलब्धता अनुरोध: 500: 1

यह होगा अगर मैं वेबसाइट को तेज़ करने के बारे में जान सकूं तो मेरे लिए बहुत उपयोगी रहें।

अग्रिम धन्यवाद

उत्तर

4

मुझे लगता है कि आपने अपने प्रश्न का उत्तर दिया है। स्थानीय डेटाबेस में क्रॉन नौकरियां और कैशिंग मुझे एक अच्छा विचार लगता है। बस क्रॉन को एक समान अंतराल पर सेट करें कि सामग्री विभिन्न होटल साइटों पर बदलती है। यदि प्रदर्शन महत्वपूर्ण है, तो शायद उसके स्वयं के सर्वर पर कैश डेटाबेस हो।

+0

मेरा बुरा, यह एक टिप्पणी माना जाता था। – Liren

+0

उत्तर देने के लिए धन्यवाद, कोई समस्या नहीं, मुझे एक जवाब गंभीरता से चाहिए। मैं पिछले 2 हफ्तों के लिए यहां फंस गया हूँ! –

+0

क्रॉन के साथ समस्या यह है कि, हजारों शहरों हैं, डेटाबेस में कितना डेटा प्राप्त किया जाना चाहिए और कितनी बार होटल अगले 1 घंटे में बुक किए जाते हैं। यदि हम क्रॉन नौकरी चलाते हैं, और मान लीजिए कि होटल बुक किया गया था जिसे डेटाबेस में लाया गया और सहेजा गया था, उस स्थिति में मुझे इसे कैसे प्रबंधित करना चाहिए। –

1

अमुक, curl_multi का उपयोग करने का प्रयास करें। PHP में समानांतर में एकाधिक HTTP अनुरोधों को संसाधित करने का यह एक शानदार तरीका है। बड़े डेटा सेट के साथ काम करते समय curl_multi विशेष रूप से आसान होता है (जैसे एक बार में हजारों आरएसएस फ़ीड प्राप्त करना) http://www.onlineaspect.com/2009/01/26/how-to-use-curl_multi-without-blocking/

+0

लेख थोड़ा पुराना हो सकता है, लेकिन पुस्तकालय trivago और बाकी https://github.com/joshfraser/rolling-curl द्वारा किया जाता है – LikeMike

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