ड्रश कमांड लाइन पर चलता है और किसी भी समय सीमा के अधीन नहीं है (विशेष रूप से, PHP का max_execution_time लागू नहीं होता है)। इसलिए, जब आप ड्रश के माध्यम से चलने वाली माइग्रेशन प्रक्रिया शुरू करते हैं, तो यह बस शुरू हो जाती है और तब तक चलती रहती है जब तक यह पूरा नहीं हो जाता।
जब एक वेब इंटरफ़ेस के माध्यम से प्रक्रियाएं चल रही हैं, तो PHP max_execution_time (आमतौर पर 30 सेकंड यदि कम नहीं है) लागू होता है। इस प्रकार, लंबे समय तक चलने वाली प्रक्रियाओं के लिए हमें बैच एपीआई का उपयोग करने की आवश्यकता होती है, जो कई अनुरोधों के दौरान एक प्रक्रिया को तोड़ने का प्रबंधन करता है। तो, एक माइग्रेशन प्रक्रिया शुरू हो जाएगी, 25 सेकंड या तो चलेगा, फिर रुकें और बैच एपीआई को एक ताज़ा पृष्ठ अनुरोध जारी करने दें, जिसमें माइग्रेशन प्रक्रिया फिर से शुरू हो, विज्ञापन infinitum।
तो, यह समझना कि, ड्रश बेहतर क्यों है?
यह तेज है
बैच एपीआई बहुत सारे ओवरहेड का परिचय देता है - पृष्ठ अनुरोधों को बंद करने और फिर से शुरू करने के लिए, माइग्रेशन प्रक्रिया को सभी आवश्यक कंस्ट्रक्टरों के माध्यम से फिर से चलाने की आवश्यकता होती है, डेटाबेस कनेक्शन पुन: स्थापित किए जाते हैं और फिर से पूछताछ करते हैं, आदि, और आंशिक आयात के लिए, इसे चुनने की आवश्यकता होती है। ऊपर जहां इसे छोड़ दिया गया है - यदि पहले 500 स्रोत रिकॉर्ड आयात किए गए हैं, तो इसे 501 वां रिकॉर्ड खोजने की आवश्यकता है। आपके स्रोत प्रारूप और उसके निर्माण के आधार पर, यह पैमाना हो सकता है या नहीं - यदि आप किसी SQL स्रोत के साथ उच्च पानी के निशान का उपयोग कर रहे हैं, तो क्वेरी स्वयं ही पहले के रिकॉर्ड को समाप्त कर सकती है और वहीं शुरू कर सकती है जहां आपने छोड़ा था। यदि नहीं, तो माइग्रेट को पहले गैर-आयातित रिकॉर्ड की तलाश में स्रोत डेटा के माध्यम से स्क्रॉल करने की आवश्यकता होती है। कहते हैं, अपने स्रोत के रूप में एक बड़ी XML फ़ाइल,
यह अधिक विश्वसनीय है
आपके ब्राउज़र के माध्यम से चल रहा पलायन आपके डेस्कटॉप और आपके स्थानीय इंटरनेट कनेक्शन को विफलता के बिंदुओं के रूप में जोड़ता है। जब बैच एपीआई अगले पेज के अनुरोध पर जा रहा होता है, तो एक ब्राउज़र गड़बड़, एक ब्राउज़र क्रैश, गलत टैब या विंडो का एक आकस्मिक पास आपके प्रवास को बाधित कर सकता है। ड्रश में दौड़ना चलती भागों को कम करता है - आप अपने डेस्कटॉप और स्थानीय इंटरनेट कनेक्शन को कारकों के रूप में समाप्त करते हैं।
यह अधिक सहायक है
यदि ड्रश में दौड़ते समय कुछ गलत हो जाता है, यदि कोई उपयोगी त्रुटि संदेश है तो आप उन्हें देखेंगे। बैच एपीआई का उपयोग करने में विफलताएं अक्सर निगल ली जाती हैं और आपको जो कुछ भी देखने को मिलता है वह पूरी तरह से बेकार है "एक AJAX HTTP अनुरोध असामान्य रूप से समाप्त हो गया है। जानकारी का अनुसरण करता है। पथ: / बैच? आईडी = 901 और op = क्या स्थिति स्थिति: प्रतिक्रिया: पाठ: तैयार: 4"।