Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

विशिष्ट समय पर स्वचालित रूप से एक PHP स्क्रिप्ट निष्पादन शेड्यूल करें

आपके पास 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
}

"उपयोगकर्ता संचालित" के अधिक फैंसी दृष्टिकोण भी हैं जिनका मैंने व्यक्तिगत रूप से परीक्षण नहीं किया है एक और स्टैक ओवरफ़्लो प्रश्न



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैसकल डुप्लिकेट विदेशी कुंजी बाधा

  2. यूटीएफ -8 में 3 से अधिक बाइट्स लेने वाले यूनिकोड वर्णों को कैसे फ़िल्टर (या प्रतिस्थापित) करें?

  3. MySQL सेवा WAMP पर शुरू नहीं हो रही है?

  4. पायथन मल्टीप्रोसेसिंग पूल मैप कॉल पर लटका हुआ है

  5. पंक्ति दोहराने के लिए रिक्त पंक्ति बनाना