आपके पास 3 विकल्प हैं। मेरी सिफारिश:यदि आप कर सकते हैं तो क्रोन का उपयोग करें, यदि आवश्यक हो तो उपयोगकर्ता द्वारा संचालित और अंतिम उपाय के रूप में डेमॉन का उपयोग करें।
(1) क्रोन (जैसा कि टिप्पणियों में बताया गया है)
क्रॉन लिनक्स सिस्टम के लिए एक शेड्यूलर है जो आपके सिस्टम पर कमांड लाइन जॉब चलाएगा। आप ssh पर अपने सर्वर में लॉग इन करें, crontab -e
. टाइप करें , और इस तरह एक पंक्ति जोड़ें:
4 5 * * * php /path/to/my/script.php
यह हर दिन सुबह 5:04 बजे स्क्रिप्ट चलाएगा।
<?php
// /path/to/my/script.php
// Do something
कुछ होस्टिंग सेवाएँ GUI के साथ क्रॉन जॉब में प्रवेश करने की अनुमति देती हैं। बाहरी क्रॉन सेवाएं भी हैं, जो विशिष्ट समय पर आपके लिए एक यूआरएल कॉल करेंगी।
(2) डेमॉन
यह सबसे उन्नत विकल्प है और सबसे कम विश्वसनीय भी है:आप एक कमांड लाइन स्क्रिप्ट चलाते हैं जिसमें एक अनंत लूप होता है। तब स्क्रिप्ट समय-समय पर राज्य की जांच करती है और उस पर प्रतिक्रिया करती है। क्योंकि यह महीनों चलने के बाद क्रैश होने की संभावना है, इसलिए आपके पास इसे फिर से शुरू करने के लिए दूसरी स्क्रिप्ट होनी चाहिए। यह बहुत काम है, लेकिन यह सबसे लचीला तरीका है।
<?php
while (1) {
// fetch $last_exec_timestamp from database
if ($last_exec_timestamp < time() + 86400) {
// set last_exec_timestamp to now in database
// do something
}
sleep(5);
}
<मजबूत>3. उपयोगकर्ता चालित
यदि आपकी साइट पर अच्छी मात्रा में ट्रैफ़िक है, तो आप बस अपने पेज फ़ुटर में एक जॉब को शामिल कर सकते हैं, जब कोई और आउटपुट न हो। सुनिश्चित करें कि यह कोड तेज़ है, या कोई बदकिस्मत उपयोगकर्ता इसकी प्रतीक्षा कर रहा होगा।
<?php
// fetch $last_exec_timestamp from database
if ($last_exec_timestamp < time() + 86400) {
// set last_exec_timestamp to now in database
// do something
}
"उपयोगकर्ता संचालित" के अधिक फैंसी दृष्टिकोण भी हैं जिनका मैंने व्यक्तिगत रूप से परीक्षण नहीं किया है एक और स्टैक ओवरफ़्लो प्रश्न ।