2009-12-07 16 views
17

मैं सर्वर पर हर 5 मिनट में एक स्क्रिप्ट चलाने के लिए चाहता हूँ। क्रॉन जॉब इत्यादि करने के लिए मेरे पास कोई भी प्रकार का प्रशासनिक विशेषाधिकार नहीं है।cron, perl आदि के बिना हर 5-10 मिनट में PHP स्क्रिप्ट कैसे चलाएं?

मैं अच्छा PHP प्रोग्रामर नहीं हूं इसलिए यह प्रश्न अजीब लग सकता है, लेकिन यदि आप समझते हैं तो कृपया मुझे एक समाधान बताएं।

उत्तर

14

मैं webcron.org का उपयोग करता हूं जो एक किफायती ऑनलाइन सेवा है। मेरे लिए लाभ यह है कि मेरे पास सभी सर्वरों पर सभी निर्धारित कार्यों का एक सिंहावलोकन है। - www.setcronjob.com

Cronless - cronless.com

EasyCron - www

SetCronJob:

+0

धन्यवाद बैरीकार्टन लेकिन यदि आप किसी भी समान सेवा को मुफ्त में जानते हैं। फिर से आपके उत्तर के लिए धन्यवाद .. –

+0

आह! सभी –

+4

के लिए धन्यवाद हाय मुझे इसी तरह की मुफ्त सेवा मिली http://www.mywebcron.com/ धन्यवाद फिर से सभी प्रतिकृति –

3

this और this देखें।


(लिंक से सामग्री को शामिल करने संपादित।)

  • PHP Cron Daemon कार्य के निष्पादन (जैसे cron) शेड्यूल करने के लिए एक डेटाबेस से प्रेरित है। यह एक crontab फ़ाइल को पार्स कर सकता है और जॉब शेड्यूलिंग परिभाषाओं को एक MySQL डेटाबेस तालिका में निकाल सकता है। जब यह निर्धारित समय चलाने के लिए समय होता है, तो यह क्रॉन्टाब परिभाषा में जॉब कमांड को PHP कोड के रूप में एक अलग प्रक्रिया के रूप में निष्पादित करता है। नौकरी PHP कोड का आउटपुट डेटाबेस तालिका में भी संग्रहीत किया जाता है।
15

आपके एकमात्र समाधान की तरह लगता है "गरीब आदमी का क्रॉन" होगा।

आप जो भी करते हैं वह एक स्क्रिप्ट तैयार करता है जिसे आप प्रत्येक पृष्ठ के शीर्ष पर रखते हैं जो केवल हर 5 मिनट में चलता है। हालांकि हर 5 मिनट चलाने की गारंटी नहीं दी जाएगी। चूंकि किसी को "गरीब आदमी के क्रॉन" वाले पृष्ठों पर जाने की आवश्यकता होती है और यदि कोई 5 मिनट से अधिक समय तक नहीं जाता है तो यह तब तक नहीं चलेगा जब तक कोई ऐसा नहीं करता।

कुछ उदाहरण कोड:

<?php 
// load the last run time from a file, database, etc 
if(time() >= $last_run + (60 * 5)) { // 60 * 5 is 5 minutes 
    // do your task here 
    // save the last run time to a file, database, etc 
} 
+0

यदि उपयोगकर्ता आपके साथ यह php स्क्रिप्ट है, तो यह अधिक स्वचालित हो जाएगा। @ MitMaro setInterval(function() { $.get('', function() { // do your aditional task here }); }, 300000);

1

कुछ की तरह:

ini_set('max_execution_time', 'sometime'); 
while(1){ 
    //do something 
    sleep(sometime); 
} 

हालांकि मैं यह कर सलाह नहीं देते। आपकी जरूरतों को पूरा करने वाले सर्वर पर जाने का समय।

11

यहां एक और 'हैक' है। चूंकि आप उस मशीन पर क्रॉन नहीं चला सकते जहां स्क्रिप्ट है, हो सकता है कि आप किसी अन्य मशीन पर क्रॉन चला सकें।

यदि आप कर सकते हैं ... हर 5 मिनट चलाने के लिए एक क्रॉन नौकरी सेट करें ... नौकरी एक साधारण PHP स्क्रिप्ट हो सकती है जो आपकी अन्य PHP स्क्रिप्ट को कॉल करती है। आप अपनी स्क्रिप्ट को कॉल करने के लिए cURL का उपयोग कर सकते हैं (यदि उस स्क्रिप्ट को किसी वेब सर्वर द्वारा सेवा दी जा रही है)

1

मुझे यकीन है कि इस उपकरण आपके अनुरोध के साथ मदद कर सकता है कर रहा हूँ .easycron.com

ऑनलाइन क्रॉन जॉब्स - www.onlinecronjobs.com

कॉर्नटैब - www।corntab.com

getCron - www.getcron.com

हालांकि, यह किसी अन्य वेबसाइट से निर्भर न अच्छा विचार है।

Google

1

मेरे समाधान के लिए टैंक यदि आपके सर्वर लिनक्स है। बैश स्क्रिप्ट बनाएं:

#bin/bash 
while [ true ] 
do 
    //do whatever you want, use curl, lynx to your page... 
    sleep 5m 
done 

इसे चलाएं और यदि आपका सर्वर रीबूट नहीं करेगा या स्क्रिप्ट नहीं मारा जाएगा तो आप ठीक होंगे।

यह कोई अच्छा समाधान नहीं है, लेकिन काम करता है।

2

यही कारण है मैं इसे कैसे

if(date('i', time())%5==0) { 
// run this code 
} 
+2

उम्मीद है कि प्रत्येक 5 मिनट में एक आगंतुक होगा। – lyhong

0

मैं इस सेवा की सिफारिश करेंगे करते हैं, मैं इसे आज इस्तेमाल, और यह अच्छी तरह से काम करने लगता है।

Cron-Job

और हाँ, यह नि: शुल्क है!

संबंधित मुद्दे