वेबसाइटें क्रोन के साथ अनुसूचित कार्य चला सकती हैं

घड़ी

हमारे पास काम पर कई अनावश्यक निगरानी प्रणालियां हैं जो नियमित रूप से प्रक्रियाओं को निष्पादित करती हैं। कुछ हर मिनट दौड़ते हैं, कुछ रात में एक बार इस पर निर्भर करते हैं कि वे क्या कर रहे हैं। उदाहरण के लिए, हम एक स्क्रिप्ट निष्पादित कर सकते हैं जो उन सभी ग्राहकों को निर्यात करती है जिन्होंने 30 दिनों में खरीदारी नहीं की है ताकि उन्हें कूपन भेज सकें।

इन सभी पर हाथ से नज़र रखने की कोशिश करने के बजाय, ऐसी नौकरियों का निर्माण करना बहुत आसान है जो स्वचालित रूप से शेड्यूल और निष्पादित होती हैं। यूनिक्स-आधारित सिस्टम पर, यह क्रॉन के साथ पूरा किया जाता है। आप लोगों के लिए जो जानते हैं कि आप क्या कर रहे हैं, बेझिझक मुझे और पाठकों को शिक्षित करें यदि मैं कोई दुष्प्रचार करता हूं।

यह दुर्भाग्यपूर्ण है, लेकिन सामान्य वेब डेवलपर क्रॉन से बिल्कुल भी परिचित नहीं है। भले ही वे हों, वेब होस्टिंग कंपनियां अक्सर क्रॉन तक पहुंच या समर्थन की आपूर्ति नहीं करती हैं। मेरा मेजबान बाद वाले में से एक है - वे आपको इसका उपयोग करने की अनुमति देते हैं, लेकिन वे इसका समर्थन नहीं करते हैं।

क्रोन क्या है?

Cron जिसका नाम ग्रीक शब्द क्रोनोस के लिए रखा गया है, जिसका अर्थ है पहर। Cronab द्वारा संचित कार्यों को चलाने के लिए क्रोन एक सतत लूप में चलता है (शायद नाम के लिए टैबulator। उन कार्यों को आमतौर पर Cronjobs के रूप में संदर्भित किया जाता है, और आपकी साइट में स्क्रिप्ट का संदर्भ दे सकते हैं।

क्रोन आरेख स्पष्टीकरण

मैं Crontab कैसे सेटअप करूँ

क्रोन को वास्तव में चलाना चुनौतीपूर्ण हो सकता है, इसलिए यहां मैंने जो सीखा और उसके लिए मैंने यह कैसे किया अगर चूसो:

  1. मैंने ट्विटर की जांच करने के लिए अपनी स्क्रिप्ट सेट की एपीआई (API) यह देखने के लिए कि क्या किसी ने उत्तर दिया था @ifsuck। मैंने उन संदेशों की तुलना उन संदेशों से की जो मैंने पहले ही वेबसाइट पर सहेजे थे, किसी भी नए में प्रवेश करना।
  2. एक बार जब स्क्रिप्ट काम कर रही थी, तो मैंने उपयोगकर्ता के लिए स्क्रिप्ट (744) को निष्पादित करने के लिए अनुमति सक्षम की और बाद में मेरी क्रोनजॉब फ़ाइल पर स्क्रिप्ट संदर्भ जोड़ा।
  3. फिर मुझे SSH के माध्यम से अपनी वेबसाइट पर लॉगिन करना पड़ा। एक मैक पर, जिसने टर्मिनल और टाइपिंग खोल ली SSH उपयोगकर्ता नाम@domain.com उपयोगकर्ता नाम जहां उपयोगकर्ता नाम था और मैं वेबसाइट का उपयोग करना चाहता था। फिर मुझे संकेत दिया गया और पासवर्ड दिया गया।
  4. फिर मैंने सर्वर पर फ़ाइल नाम और संबंधित पथ लिखकर कमांड प्रॉम्प्ट से सीधे स्क्रिप्ट चलाने का प्रयास किया: /var/www/html/myscript.php
  5. एक बार मुझे यह सही ढंग से काम करने के बाद, मैंने फ़ाइल की पहली पंक्ति में आवश्यक यूनिक्स कोड जोड़ा: #! / usr / बिन / php -q । मेरा मानना ​​है कि यह स्क्रिप्ट को निष्पादित करने के लिए PHP का उपयोग करने के लिए यूनिक्स को बताता है।
  6. टर्मिनल कमांड लाइन पर, मैंने टाइप किया crontab (अन्य को टाइप करने की आवश्यकता हो सकती है crontab -e) और हिट दर्ज करें ... और यह सब जरूरी था!

आपकी Cronjob फ़ाइल के लिए सिंटैक्स

उपरोक्त # 2 के संबंध में, क्रॉन यह निर्धारित करने के लिए एक सरल योजना का उपयोग करता है कि आपकी स्क्रिप्ट कब निष्पादित की जाएगी। वास्तव में, आप वास्तव में इसे अपने क्रोनफाइल में कॉपी और पेस्ट कर सकते हैं (मेरे होस्ट पर, यह में स्थित है / Var / स्पूल / क्रॉन / मेरे नाम के समान फ़ाइल नाम के साथ)।

# + ——————— मिनट (0 - 59)
# # + —————— घंटा (० - २३)
# # | + ————- महीने का दिन (१ - ३१)
# # | | + ——- माह (१ - १२)
# # | | | + - सप्ताह का दिन (0 - 6) (रविवार = 0 या 7)
# # | | | |
* * * * * /वर / www./html/myscript.php

उपरोक्त मेरी स्क्रिप्ट को हर मिनट निष्पादित करेगा। अगर मैं चाहता था कि यह एक घंटे में एक बार चले, तो मैं बस यह चाहूँगा कि कितने घंटे बाद मैं इसे चलाने की इच्छा रखूँ, इसलिए यदि यह 30 मिनट के निशान पर था:

30 * * * * /वर / www./html/myscript.php

सुनिश्चित करें कि आपने इस फ़ाइल की अनुमतियों को निष्पादन योग्य के रूप में भी सेट किया है! मैंने पाया कि टर्मिनल विंडो से सिंटैक्स, अनुमतियां और क्रोंटैब निष्पादित करना सबसे महत्वपूर्ण कारक थे। हर बार जब मैं फ़ाइल को फिर से सहेजता, तो मुझे अपनी अनुमतियों को भी रीसेट करने की आवश्यकता होती!

अद्यतन: यदि आप यह सुनिश्चित करना चाहते हैं कि कार्य चल रहे हैं, तो एक सरल तरीका यह है कि डेटाबेस फ़ील्ड को पिछली बार स्क्रिप्ट चलाने के साथ अद्यतन किया जाए। यदि यह अधिक दुर्लभ है, तो आप केवल स्वयं को भेजे गए ईमेल को स्क्रिप्ट कर सकते हैं।

अतिरिक्त क्रोन संसाधन:

Cron का उपयोग करके आप कितनी नौकरियां स्वचालित कर सकते हैं?

8 टिप्पणियाँ

  1. 1

    एक क्रोन की स्थापना पर अच्छी तरह से कवर लेख, किसी के लिए क्रॉसर करने के लिए नया, क्रोन की स्थापना में सबसे कठिन हिस्सा क्रोनजोब निष्पादन अंतराल का पता लगाना है, और पहली कोशिश में एक गलत अंतराल प्राप्त करना काफी सराहनीय है। यदि आपका क्रोनॉगर समय संवेदनशील है, तो स्टेटस को इको आउट करने के लिए स्क्रिप्ट में कुछ कोड शामिल करना अच्छा है ताकि आपको जॉब एग्जीक्यूटिव स्टेटस के बारे में बताया जाता रहे।

  2. 2

    हाय डौग,

    क्रोन नौकरियों के साथ काम करते समय कुछ बातों पर विचार करें।

    सबसे पहले, कुछ दर्जन के बाद, आप चाहते हैं कि आपके पास एक यूआई, एक डेटाबेस और अंग्रेजी दिखने वाला वाक्यविन्यास doz हो

    दूसरा, क्रोन निर्दिष्ट समय पर नौकरी को आग देगा, चाहे नौकरी का पिछला आह्वान पूरा हो गया हो। इसलिए 2 मिनट लगते ही एक बार जॉब चलाने से बहुत सारी जॉब जल्दी ही चल जाएंगी।

    इसके बाद, कोई त्रुटि रिपोर्टिंग के बगल में है जब कुछ गलत होता है, तो आपको अपनी त्रुटि रिपोर्टिंग जोड़ने की आवश्यकता होगी।

    मैंने इन्हें कुछ तरीकों से संबोधित किया है:
    - अनुप्रयोग को डेटाबेस में क्रोन लुक के माध्यम से ट्रिगर किया जाता है ताकि यह निर्धारित किया जा सके कि क्या चलाने की आवश्यकता है। आप जो चाहते हैं उसके आधार पर इसे एक मिनट या घंटे में एक बार चलाएं
    - प्रत्येक स्क्रिप्ट में / tmp में एक 'लॉक' फ़ाइल बनाएं और यदि यह मौजूद है, तो फिर से शुरू न करें, यह डुप्लिकेट नौकरियों को रोकता है यदि आप उन्हें नहीं चाहते हैं
    - अगर स्क्रिप्ट को लॉक फाइल 1 घंटे (या जो भी आपके मरने की सलाह देती है) से मिलती है, तो ईमेल अलर्ट भेजें
    - काम की विफलता पर स्क्रिप्ट भेजना ईमेल है तो आप जानते हैं कि कुछ गलत हो गया है
    - फ्लक्स या कमर्शियल शेड्यूलर्स जैसे फ्रेमवर्क को देखें जब आपकी जरूरत कुछ स्क्रिप्ट से परे हो

    क्रिस

  3. 4

    मैं सबसे लिनक्स / यूनिक्स सिस्टम पर भी जोड़ूंगा, "crontab -e" जो आप अपने crontab को संपादित करने के लिए उपयोग करते हैं। मुझे लगता है कि सुरक्षा कारणों से आपका होस्ट (जंपलाइन) एक संशोधित संस्करण का उपयोग कर रहा है।

  4. 5

    मुझे अभी भी याद है कि मैं पहले दिन क्रोनी से मिला था। मैंने उसके बारे में बातें सुनी थीं, कि वह भरोसेमंद था, हमेशा समय पर, लेकिन कभी-कभी उसके इरादों के बारे में थोड़ा भ्रमित हो जाता है।

    मुझे यह सच लगा क्योंकि वह पहली बार में मेरे लिए एक पूर्ण रहस्य थी। उसके बारे में पूछने के बाद, मैंने काफी जल्दी से पकड़ लिया कि वह कैसे काम करना पसंद करती है। अब, मैं अपने जीवन में उसके बिना एक दिन की कल्पना नहीं कर सकता। वह सांसारिक रोमांचक बनाता है, और मेरे कंधों से कई बोझ उठाता है।

    सभी गंभीरता में, मुझे लगता है कि मैंने केवल सतह को खरोंच किया है जिसे मैं क्रोन नौकरियों के साथ स्वचालित कर सकता हूं। वे वास्तव में एक डेवलपर्स के सबसे अच्छे दोस्त हैं। यदि आप अपने सर्वर को प्रबंधित करने के लिए CPanel जैसे किसी का उपयोग कर रहे हैं, तो यह क्रोन बनाने के लिए बहुत अधिक अनुकूल इंटरफ़ेस प्रदान करता है। मिनट, घंटे, दिन, महीने, आदि के लिए ड्रॉप डाउन मेनू के साथ पूरा करें जो आपके लिए क्रोन लाइन बनाता है।

  5. 7

    मैं निश्चित रूप से देखता हूं कि यह कुछ ऐसा है जो प्रत्येक बाज़ारिया को उपयोग करना चाहिए ... क्या कोई है जो इस सेवा को प्रदान कर सकता है क्योंकि यह थोड़ा "तकनीकी" लगता है?

तुम्हें क्या लगता है?

यह साइट स्पैम को कम करने के लिए अकिस्मेट का उपयोग करती है। जानें कि आपका डेटा कैसे संसाधित किया जाता है.