सिद्धांत रूप में, Unixish सिस्टम पर (लिनक्स, BSD, आदि), अगर आप इस तरह की प्रक्रिया प्राथमिकता बदलने के लिए, proc_nice()
समारोह इस्तेमाल कर सकते हैं:
proc_nice(20); // now this process has very low priority
हालांकि, वहाँ एक जोड़े हैं यहां प्रमुख चेतावनियों में से जो इसे अभ्यास में कम उपयोगी बनाता है:
- यह विंडोज पर समर्थित नहीं है।
- आपको केवल कम करने की अनुमति है, इसे कम नहीं करने के लिए (इसके मूल मूल्य पर भी वापस नहीं)।
- PHP प्रक्रिया समाप्त होने तक अच्छीता बनी रहती है, यदि आप एक फास्टसीजीआई प्रक्रिया के रूप में PHP चला रहे हैं, या इससे भी बदतर, वेबसर्वर एक्सटेंशन के रूप में एक समस्या हो सकती है।
- उपर्युक्त मुद्दों के कारण,
proc_nice()
को उन कारणों पर भी सुरक्षा कारणों से अक्षम किया जा सकता है जो तकनीकी रूप से इसका समर्थन कर सकते हैं।
आपको क्या करने की कोशिश कर सकते हैं, अपने webhost यह अनुमति देता है, start a background process को लंबे समय से चल कार्य के लिए है, इसलिए है कि अपने वेब सर्वर अनुरोधों की सेवा के चलते समय के लिए वापस मिल सकता है। तुम भी पृष्ठभूमि प्रक्रिया की प्राथमिकता कम करने के लिए, इस तरह nice
शेल कमांड का उपयोग कर सकते हैं:
exec("nice nohup php -f slow_script.php </dev/null> output.txt 2>&1 &");
एक बार धीमी गति से स्क्रिप्ट समाप्त हो गया है, तो आप इसके उत्पादन output.txt
डाउनलोड करके प्राप्त कर सकते हैं।
स्रोत
2013-01-09 23:14:52
आपको बहुत बहुत धन्यवाद, यह सही जवाब है! – molbal
असल में, यह उपयोग को कम नहीं करेगा, क्योंकि यह वही रहेगा। लेकिन एक स्क्रिप्ट की पूरी अवधि के लिए स्पाइकिंग से 100% CPU उपयोग तक प्रक्रिया को प्रसारित करेगा। जो अन्य कार्यों को अवरुद्ध नहीं करेगा जिन्हें तेजी से निष्पादित किया जाना चाहिए। – Grzegorz