PHP में टास्क शेड्यूलर क्या है?
टास्क शेड्यूलर (task scheduler) PHP एप्लिकेशन में दोहराए जाने वाले कार्यों को स्वचालित करने का एक उपकरण है। CRON के विपरीत, जो सर्वर स्तर पर प्रबंधित होता है, PHP के लिए लाइब्रेरीज़ आपको प्रोजेक्ट कोड में ही लचीले ढंग से शेड्यूल सेट करने की अनुमति देती हैं, जिससे कार्य व्यावसायिक तर्क (जैसे, ईमेल न्यूज़लेटर भेजना, कैश साफ़ करना, रिपोर्ट जनरेट करना) के साथ एकीकृत हो जाते हैं।
टास्क शेड्यूलर की आवश्यकता क्यों है?
शेड्यूलर के बिना, डेवलपर्स को CRON के माध्यम से मैन्युअल रूप से स्क्रिप्ट चलानी पड़ती है, जिससे निर्भरता प्रबंधन और परीक्षण जटिल हो जाता है। PHP शेड्यूलर इन समस्याओं का समाधान करता है:
- लचीलापन: सिस्टम फ़ाइलों को संपादित किए बिना कार्यों को रोका जा सकता है, आवृत्ति बदली जा सकती है।
- लॉगिंग: त्रुटियों और निष्पादन को रिकॉर्ड करने के लिए अंतर्निहित तंत्र।
- कतारें: बैकग्राउंड कार्यों के लिए RabbitMQ, Redis के साथ एकीकरण।
- परीक्षण: कंसोल या परीक्षणों के माध्यम से कार्यों को मैन्युअल रूप से चलाया जा सकता है।
स्थापना
लोकप्रिय शेड्यूलर vlucas/phpdotenv (dotenv के साथ भ्रमित न हों) या cron-expression हैं। हालांकि, सबसे कार्यात्मक symfony/scheduler (Symfony से) या peppeocchi/php-cron-scheduler है। Composer के माध्यम से स्थापना:
composer require peppeocchi/php-cron-schedulerमुख्य विशेषताएं
- CRON-एक्सप्रेशन के लिए समर्थन:
*/5 * * * *— हर 5 मिनट में। - एक बार के कार्य: सटीक निष्पादन समय के साथ।
- सशर्त कार्य: केवल तभी चलाएं जब शर्त पूरी हो (उदाहरण के लिए, फ़ाइल मौजूद हो)।
- समानांतर निष्पादन: कार्य एक-दूसरे को ब्लॉक नहीं करते।
- त्रुटि प्रबंधन: विफलता पर स्वचालित पुनर्प्रयास।
PHP कोड उदाहरण
require 'vendor/autoload.php';
use GO\\Scheduler;
$scheduler = new Scheduler();
// हर 10 मिनट में कार्य$scheduler->php('/path/to/script.php') ->everyMinute(10) ->output('/tmp/output.log');
// CRON-एक्सप्रेशन के साथ कार्य$scheduler->call(function() { echo "ईमेल भेजा जा रहा है...";})->cron('0 9 * * 1'); // हर सोमवार सुबह 9 बजे
// सशर्त कार्य$scheduler->php('/path/to/report.php') ->daily() ->when(function() { return file_exists('/tmp/flag.txt'); });
$scheduler->run();कब उपयोग करें?
शेड्यूलर इसके लिए आदर्श है:
- अस्थायी फ़ाइलों या डेटाबेस की नियमित सफाई।
- शेड्यूल के अनुसार push-सूचनाएं भेजना।
- एकत्रित डेटा को अपडेट करना (उदाहरण के लिए, रैंकिंग)।
- बाहरी API के साथ एकीकरण (पार्सिंग, सिंक्रोनाइज़ेशन)।
उन कार्यों के लिए शेड्यूलर का उपयोग करने से बचें जिनमें तत्काल निष्पादन की आवश्यकता होती है — इसके लिए कतारें (जैसे RabbitMQ या Redis) बेहतर हैं।
निष्कर्ष
PHP पर टास्क शेड्यूलर दिनचर्या को स्वचालित करने के लिए एक शक्तिशाली उपकरण है। यह विशेष रूप से उन प्रोजेक्ट्स में उपयोगी है जहां सर्वर पर CRON प्रविष्टियां असुविधाजनक हैं या बार-बार बदलाव की आवश्यकता होती है। Composer के माध्यम से स्थापना में एक मिनट लगता है, और लचीली सेटिंग्स आपको किसी भी व्यावसायिक प्रक्रिया के अनुसार शेड्यूल को अनुकूलित करने की अनुमति देती हैं।
```