मैंने एक php/mysql स्क्रैपर बनाया है, जो ठीक चल रहा है, और यह नहीं पता कि क्रॉन नौकरी के रूप में इसे सबसे कुशलतापूर्वक कैसे चलाया जाए। 200 पृष्ठों स्क्रैप जा रहा है -एक PHP क्रॉन नौकरी कितनी देर तक चल सकती है/क्या मैं इसे सही कर रहा हूं?
300 साइटों, 20 के बीच के साथ प्रत्येक रहे हैं। सभी साइटों को स्क्रैप करने में 4 से 7 घंटे लगते हैं (नेटवर्क विलंबता और अन्य कारकों के आधार पर)। स्क्रैपर को रोजाना एक बार पूरा रन करने की ज़रूरत होती है।
मैं जो पूरे 4 के लिए चलाता है 1 क्रॉन जॉब के रूप में इस चलाने चाहिए - 7 घंटे, या यह हर घंटे 7 बार चलाते हैं, या पूरा जब तक यह हर 10 मिनट चला सकता हूँ?
while($starttime+600 > time()){
do_scrape();
}
कौन सा do_scrape() फ़ंक्शन, जो एक समय में 10 यूआरएल scrapes, जब तक (इस मामले में) चलेंगे 600 सेकंड है:
स्क्रिप्ट इस तरह क्रॉन से चलाने के लिए सेट किया गया है बीतने के। Do_scrape को चलाने के लिए 5 से 60 सेकंड के बीच लग सकता है।
मैं यहां पूछ रहा हूं क्योंकि मुझे इसे चलाने के तरीके के बारे में वेब पर कोई जानकारी नहीं मिल रही है, और यह रोज़ाना चलने के बारे में सावधान रहती है, क्योंकि php वास्तव में 7 घंटे के लिए एक स्क्रिप्ट के रूप में चलाने के लिए डिज़ाइन नहीं किया गया है।
मैं वेनिला PHP/mysql में लिखा था, और यह केवल lighttpd/mysql/PHP5 स्थापित साथ डेबियन वीपीएस कटौती पर चल रहा है। मैंने बिना किसी समस्या के 6000 सेकेंड (100 मिनट) के टाइमआउट के साथ इसे चलाया है (सर्वर खत्म नहीं हुआ)।
इस कार्य के बारे में जाने के बारे में कोई सलाह की सराहना की जाती है। मुझे आदि के लिए क्या देखना चाहिए ..? या मैं यह सब गलत करने के बारे में जा रहा हूँ?
धन्यवाद!
उत्तर के लिए चीयर्स। पोस्ट-प्रोसेसिंग की मात्रा न्यूनतम है (~ 150ms प्रति ~ 2-5 सेकंड पेज अनुरोध) हमने कर्लिंग स्क्रिप्ट और प्रोसेसिंग स्क्रिप्ट के बजाय एक मोनोलिथिक संरचना के साथ चिपकने का फैसला किया है। हम एक बार में 10 यूआरएल प्राप्त करने के लिए बहु-कर्ल का उपयोग कर रहे हैं, इसलिए यह अर्ध-बहुप्रचारित है, हालांकि आदर्श नहीं है। पायथन आदर्श होगा, लेकिन नौकरी पाने के लिए हम जो जानते हैं (एफपी) के साथ जाने का मामला था। धन्यवाद! – Rob