मेरे पास एक php स्क्रिप्ट है जो http के माध्यम से एक फ़ाइल पढ़ती है (फ़ाइल अन्य डोमेन पर है)। जब भी वेबसाइट रीफ्रेश हो जाती है, तो मैं इसे इस फ़ाइल को दिन में केवल एक या दो बार पढ़ना चाहूंगा। क्या क्रॉन के साथ ऐसा करने का कोई और तरीका है? मैं क्रॉन कारण का उपयोग नहीं करना चाहता हूं, मैं इस व्यवहार को स्क्रिप्ट में ही सेट करना पसंद करता हूं .. इसलिए यह लचीला है, इसलिए मैं इसे हर बार क्रॉन सेट किए बिना कहीं भी उपयोग कर सकता हूं। धन्यवादमैं कुछ अंतराल में PHP स्क्रिप्ट कैसे चला सकता हूं (उदा। दिन में एक बार)?
उत्तर
यदि आप उपयोग क्रॉन का उपयोग नहीं करना चाहते हैं या नहीं चाहते हैं और पृष्ठ को एक्सेस होने पर ही इसे अपडेट करना ठीक है। आप HTTP अनुरोध के परिणाम को कैश कर सकते हैं और इसे केवल पृष्ठ लोड पर अपडेट कर सकते हैं यदि कैश एक दिन से बड़ा हो या जो भी अंतराल आप चुनते हैं।
आप उपयोग कर सकते हैं यदि आप एक * nix पर्यावरण पर कर रहे हैं cron jobs
आप एक Cronjob उपयोग कर सकते हैं। फिर आप कमांड लाइन द्वारा php स्क्रिप्ट चला सकते हैं।
php /someplace/somefile.php
यदि आप हर दिन अपडेट करते हैं तो क्रोनबॉज निम्न होगा।
0 0 * 0 0 php /someplace/somefile.php
तुम भी Web Based Cron का उपयोग आप एक समय अंतराल पर एक साइट को हिट करना चाहते हैं कर सकते हैं।
मैं वेब आधारित क्रॉन का उपयोग कर रहा हूं क्योंकि मैं अपने होस्टिंग पैकेज पर वीपीएन को उचित नहीं ठहरा सकता था और मैं इससे बहुत खुश हूं।पॉइंटर –
क्रॉन के साथ क्या गलत है?
आपके पास क्रॉन के साथ कुछ विकल्प हैं - आपके PHP को कमांड लाइन PHP दुभाषिया द्वारा बुलाया जा सकता है, या आप सर्वर पर अपने PHP को आमंत्रित करने के लिए wget या fetch या समकक्ष का उपयोग कर सकते हैं।
सामान्यतः, वेब सर्वर के संदर्भ में PHP से चलने वाले PHP में समय सीमा है कि यह कितनी देर तक निष्पादित हो सकता है, इसलिए आम तौर पर आप "पृष्ठभूमि" PHP थ्रेड को "बाद में" करने के लिए सेट नहीं कर सकते हैं।
के लिए धन्यवाद, उन्होंने विशेष रूप से क्रॉन के विकल्प के लिए कहा, यही कारण है कि मैंने इस जवाब को कम किया। – Veehmot
मैं जब मैं क्रॉन के लिए उपयोग नहीं किया है अतीत में बात इस तरह का कार्य किया है: जब से तुम स्पष्ट रूप से यह है कि आप क्रॉन का उपयोग नहीं करना चाहते हैं
$lastRunLog = '/path/to/lastrun.log';
if (file_exists($lastRunLog)) {
$lastRun = file_get_contents($lastRunLog);
if (time() - $lastRun >= 86400) {
//its been more than a day so run our external file
$cron = file_get_contents('http://example.com/external/file.php');
//update lastrun.log with current time
file_put_contents($lastRunLog, time());
}
}
चालाक तरीका है, अच्छा! हालांकि, मैं बफरिंग फ़ंक्शंस पर और अधिक देखूंगा क्योंकि मुझे इसकी आवश्यकता के लिए बेहतर लगता है। – Adriana
लेकिन आपको उपरोक्त कोड अंतराल में सही करना है? मेरा मतलब है कि आपको किसी भी समय वर्तमान समय और आखिरी अवधि के बीच अंतर की जांच करना चाहिए। आप डब्ल्यू/ओ क्रॉन कैसे करते हैं? – user1512681
आप अपने साइट आगंतुकों को इसे चला सकते हैं या इसे किसी अन्य सिस्टम से कॉल कर सकते हैं जिस पर आपके पास क्रॉन पर पहुंच है। – cOle2
, केवल दूसरा रास्ता ऐसा करने के लिए (क्रॉन के समान कुछ के बिना) अपनी स्क्रिप्ट को डिमन के रूप में सेट करना है। हालांकि, जब तक आपको वास्तव में डिमन्स प्रदान करने वाली लचीलापन की आवश्यकता नहीं होती है, तो क्रॉन बहुत आसान और सरल होता है।
यहां एक daemon walk-through है।
आप डेटाबेस तालिका का भी उपयोग कर सकते हैं - वास्तव में संरचना, आईडी, दिनांक, स्क्रिप्ट यूआरएल, और जो कुछ भी आपको चाहिए - और प्रत्येक बार जब आप स्क्रिप्ट चलाते हैं तो एक पंक्ति जोड़ें।
फिर, स्क्रिप्ट चलाने से पहले बस प्रत्येक दिन के लिए पंक्ति की संख्या जांचें।
आप systemd के साथ एक Linux distro उपयोग कर रहे हैं:
मैं वार्षिक आधारित नौकरियों का समय निर्धारण के लिए एक की जरूरत थी, आवेदन की स्वतंत्र (मामले में सिस्टम रिबूट या ऐसा कुछ भी), और मैं दिया गया था systemd Timers का उपयोग करने के लिए सुझाव। इस पर आर्क Wiki Page कुछ उदाहरण देता है।
- 1. मैं PHP स्क्रिप्ट (जैसे बैच फ़ाइल) के भीतर से कई PHP स्क्रिप्ट कैसे चला सकता हूं?
- 2. रूबी में मैं एक शैल स्क्रिप्ट कैसे चला सकता हूं और पृष्ठभूमि (async) में चला सकता हूं?
- 3. मैं एसएसएच के माध्यम से एक PHP स्क्रिप्ट कैसे चला सकता हूं?
- 4. मैं लिनक्स में सिस्टम डिमन के रूप में एक पर्ल स्क्रिप्ट कैसे चला सकता हूं?
- 5. मैं पाइथन में एक बार में 2 सर्वर कैसे चला सकता हूं?
- 6. मैं Emacs में एक सूडो कमांड कैसे चला सकता हूं?
- 7. मैं एंड्रॉइड लुक-बार कैसे आसानी से चला सकता हूं?
- 8. मैं विंडोज शेड्यूल कार्य का उपयोग कर एक PHP स्क्रिप्ट कैसे चला सकता हूं?
- 9. मैं Emacs में एक अजगर दुभाषिया कैसे चला सकता हूं?
- 10. दिन में एक बार चलाएं
- 11. मैं अपनी PHP स्क्रिप्ट को हर समय एक निश्चित समय पर कैसे चला सकता हूं?
- 12. मैं कमांड लाइन में एक स्क्रिप्ट से फ़ंक्शन कैसे चला सकता हूं?
- 13. ग्रहण में, मैं एक जुनीट टेस्ट केस को कई बार कैसे चला सकता हूं
- 14. मैं पर्ल से एक PHP स्क्रिप्ट कैसे लगा सकता हूं?
- 15. एक बैश स्क्रिप्ट/कमांड में मैं एक पीसी बीप शोर कैसे बना सकता हूं, या ध्वनि फ़ाइल चला सकता हूं?
- 16. जब मैं उपversण करने के लिए प्रतिबद्ध हूं तो क्या मैं एक स्क्रिप्ट चला सकता हूं?
- 17. मैं कैसे सुनिश्चित कर सकता हूं कि एक दिन रेल में एक सप्ताह का दिन है?
- 18. मैं रूट (सूडो) के रूप में एक शेल स्क्रिप्ट कैसे चला सकता हूं?
- 19. कुछ अन्य आदेश सफलतापूर्वक चलाने के बाद ही मैं एक आदेश कैसे चला सकता हूं?
- 20. मैं रूबी जेम कैसे चला सकता हूं?
- 21. मैं वर्तमान दिनांक में 1 दिन कैसे जोड़ सकता हूं?
- 22. मैं सप्ताहों में दिन कैसे समूहित कर सकता हूं?
- 23. मैं एक स्थिर निर्माता कैसे चला सकता हूं?
- 24. मैं अपने सभी PHPUnit परीक्षण कैसे चला सकता हूं?
- 25. मैं QT में XPath क्वेरी कैसे चला सकता हूं?
- 26. मैं एक्सकोड 4 में सी ++ प्रोग्राम कैसे चला सकता हूं?
- 27. पायथन: मैं समानांतर में पायथन फ़ंक्शन कैसे चला सकता हूं?
- 28. मैं डेल्फी में कमांड लाइन प्रोग्राम कैसे चला सकता हूं?
- 29. क्या मैं एक्लिप्स रन कॉन्फ़िगरेशन में एक स्क्रिप्ट चला सकता हूं?
- 30. क्या मैं सिस्टम लाइब्रेरी (उदा। Libxml2) को शामिल कर सकता हूं, मैं एक मणि (उदा। नोकोगिरी) में संकलित करता हूं जिसे मैं हरोकू में तैनात कर सकता हूं?
धन्यवाद, अब तक आप अकेले हैं जो समझ गए कि मैं क्रॉन की तुलना में अन्य तरीकों की तलाश में हूं। मैं यह कैश कैसे करूं? एपीसी क्या मतलब है? – Adriana
एपीसी एक तेज़, इन-मेमोरी कैश प्रदान करने का एक तरीका है लेकिन एकमात्र तरीका नहीं है। अगर आप अपने कैश को मल्टीप्ल मशीनों में वितरित करने में सक्षम होना चाहते हैं तो memcached है। वैकल्पिक रूप से, आप बस एक प्रतिलिपि डीबी में डाल सकते हैं और किसी भी नई तकनीक को नहीं ला सकते हैं। –
चीजों को कैश करने का सबसे आसान तरीका PHP के अंतर्निर्मित आउटपुट बफरिंग फ़ंक्शंस का उपयोग करना चाहिए। (http://www.php.net/manual/en/function.ob-start.php) – Alo