यह व्यवहार सत्र-लॉकिंग जैसा लगता है। PHP सत्र के काम करने का डिफ़ॉल्ट तरीका सत्र को लॉक करना है (सत्र ऑब्जेक्ट पर दो प्रक्रियाओं को लिखने से रोकने के लिए)। यह सामान्य रूप से सामान्य अल्पकालिक PHP स्क्रिप्ट के लिए ठीक है, लेकिन जब आपके पास कुछ ऐसा हो जो लंबे समय से चल रहा हो तो आपको काट सकता है।
यदि आपका एप्लिकेशन सत्रों का उपयोग बिल्कुल नहीं कर रहा है, तो आपको session.auto_start
. को बंद कर देना चाहिए php.ini या .htaccess में:http ://www.php.net/manual/hi/session.configuration.php#ini.session.auto-start
(यदि आप इसे वहां नहीं देखते हैं, या यह पहले से ही बंद है, लेकिन आप किसी प्रकार के ढांचे का उपयोग कर रहे हैं, तो ढांचा आपके लिए सत्र शुरू कर सकता है; यदि ऐसा है तो लड़ने की कोशिश करने से अगले समाधान पर जाना आसान है ढांचा।)
यदि आप कुछ पृष्ठों पर सत्र का उपयोग कर रहे हैं, लेकिन इस लंबे समय तक चलने वाली प्रक्रिया पर नहीं, तो समाधान आपकी स्क्रिप्ट के प्रारंभ में सत्र को session_write_close() :
<?
set_time_limit(0);
require '../connect.php';
require '../includes/ses.php';
session_write_close();
$i = 1;
....
फिर से, फ्रेमवर्क चेतावनी:यदि फ्रेमवर्क आपके लिए एक सत्र शुरू कर रहा है, तो session_write_close();
डाल दें फ्रेमवर्क फाइलों को शामिल करने के बाद, पहले नहीं! (आपने उल्लेख किया कि आपकी टिप्पणियों में ऐसा ही था, यही वजह है कि मैंने इसे आवश्यकता पंक्तियों के बाद रखा है।)
यदि आपकी लंबी चलने वाली प्रक्रिया को सत्र का उपयोग करने की आवश्यकता है, लेकिन केवल पढ़ने के लिए, उपरोक्त अभी भी काम करता है। देखें https://stackoverflow.com/a/14409902/841830 (जैसा कि उस उत्तर से पता चलता है, यदि आपको लंबे समय से चल रही प्रक्रिया के अंत में सत्र को लिखने की आवश्यकता है, तो यह भी संभव है।)
(P.S. टिप्पणियों में इसका उत्तर पहले ही दिया जा चुका है, लेकिन मैंने इसे एक उत्तर के रूप में पोस्ट करने के उनके प्रस्ताव पर Wrikken को लिया है। हां, अफवाहें सच हैं:मैं कुछ प्रतिनिधि के लिए कुछ भी करूंगा...)