मेरे पास एक नक्शा है। इस मानचित्र पर मैं कई तालिकाओं से एकत्रित लाइव डेटा दिखाना चाहता हूं, जिनमें से कुछ पंक्तियों की चौंकाने वाली मात्रा है। कहने की जरूरत नहीं है, इस जानकारी को लाने से लंबा समय लगता है। इसके अलावा, पिंगिंग शामिल है। ऑफ़लाइन या दूर होने वाले सर्वरों के आधार पर, इस डेटा का संग्रह 1 से 10 मिनट तक भिन्न हो सकता है।एक PHP स्क्रिप्ट को लगातार चलाने के लिए इतना बुरा क्यों है?
मैं मानचित्र को स्नैपी और उत्तरदायी होना चाहता हूं, इसलिए मैंने अपने डेटाबेस में एक नई तालिका जोड़ने का निर्णय लिया है जिसमें नक्शा की आवश्यकता केवल डेटा है। इसका मतलब है कि मुझे अपनी नई तालिका में लगातार जानकारी अपडेट करने के लिए पृष्ठभूमि प्रक्रिया की आवश्यकता है। क्रॉन नौकरियां निश्चित रूप से एक संभावना है, लेकिन मैं चाहता हूं कि जैसे ही पिछला अंतराल पूरा हो जाए, डेटा को ताज़ा करना होगा। और क्या होगा यदि ऑफ़लाइन आईपी पते की संख्या अचानक बढ़ती है और क्रॉप नौकरी के अंतराल की तुलना में लूप को चलाने में अधिक समय लगता है?
मेरा स्वयं का समाधान PHP में एक अनंत लूप बनाना है जो कमांड लाइन द्वारा चलता है। यह लूप मानचित्र के लिए डेटा को MySQL में रीफ्रेश करेगा साथ ही अन्य उपयोगी डेटा जैसे कि लूप टाइम और पिंग्स इत्यादि में असफल प्रयास रिकॉर्ड करेगा, फिर एक छोटी रोक (कुछ सेकंड) के बाद पुनरारंभ करें।
हालांकि - मुझे बार-बार लोगों द्वारा बताया जा रहा है कि एक PHP स्क्रिप्ट हमेशा के लिए चल रही है। थोड़ी देर के बाद यह रैम (और अन्य भयानक चीजों) के गीगाबाइट्स को हॉग करेगा
आंशिक रूप से मैं इस सवाल को लिखने के लिए लिख रहा हूं कि यह वास्तव में मामला है, लेकिन कुछ टिप्स और चालें कि मैं एक साफ लिखने के बारे में कैसे जाऊं लूप जो स्मृति को रिसाव नहीं करता है (यदि यह संभव है) अस्वस्थ नहीं होगा। इस मामले पर राय की भी सराहना की जाएगी।
उत्तर मुझे लगता है कि इस मुद्दे पर सबसे अधिक प्रकाश डालने वाला जवाब मैं सही के रूप में चिह्नित करूंगा।
एक अविश्वसनीय रूप से मामूली बिंदु, लेकिन कृपया प्रश्नों पर हस्ताक्षर/साइन-ऑफ जोड़ें न जोड़ें। (उस तरफ, यह एक बहुत अच्छी तरह से निर्मित सवाल है।) :-) –
क्षमा करें और धन्यवाद :-) – Hubro