2014-04-30 4 views
6

यह मेरा पहला समय है जो कार्य को शेड्यूल करता है और मुझे सबसे अच्छा कार्यान्वयन (या उचित कार्यान्वयन) सुनिश्चित नहीं है।रेल निर्धारित समय पर रूबी

मेरा लक्ष्य: मेरे पास टीलियो के साथ रेल 4 ऐप सेटअप पर रूबी है और हेरोोक पर तैनात है। मैं चाहता हूं कि ऐप सप्ताह में एक बार एक अनुकूलित टेक्स्ट संदेश (जिसे डेटाबेस में जानकारी द्वारा लिखा और बनाया गया हो) के साथ अपने सभी उपयोगकर्ताओं को स्वचालित रूप से टेक्स्ट करना पड़े।

अनुसंधान से मैं निम्नलिखित रत्नों पर आ गया हूं: Whenever और Rufus-Scheduler

मेरा मानना ​​है कि ये दोनों रत्न नौकरी कर सकते हैं, लेकिन रूफस के दस्तावेज़ों पर पढ़ने पर: "कृपया ध्यान दें: रूफस-शेड्यूलर क्रॉन प्रतिस्थापन नहीं है" मैं समझने की कोशिश कर रहा हूं कि मैं वास्तव में क्या चाहता हूं एक क्रॉन नौकरी या "रूफस-शेड्यूलर"।

मुझे निम्नलिखित प्रश्नों के साथ छोड़ दिया गया है: क्रॉन नौकरी क्या है और इसका उपयोग करने के लिए उचित समय कब है? रूफस-शेड्यूलर क्रॉन प्रतिस्थापन क्यों नहीं है और यह अलग-अलग क्या करता है? मुझे किसका उपयोग करना चाहिए?

उत्तर

1

क्रॉन के बारे में:

क्रॉन प्रोग्राम है जो nix सिस्टम पर कार्य अनुसूचित करता है का नाम है। विंडोज़ में अनुसूचित कार्य क्या हैं, क्रॉन वैचारिक स्तर पर लिनक्स के लिए कुछ समान करता है। क्रोन लिनक्स या यूनिक्स जैसे ऑपरेटिंग सिस्टम की तरह सबसे उपयोगी टूल में से एक है। क्रॉन सेवा (डेमन) पृष्ठभूमि में चलता है और लगातार/etc/crontab फ़ाइल, और/etc/cron की जांच करता है।/निर्देशिकाएं। यह/var/spool/cron/निर्देशिका भी जांचता है।

Heroku पर निर्धारण कार्यों के लिए

अच्छी खबर है कि Heroku पर वहाँ एक बात समयबद्धक बुलाया निर्धारित समय अंतराल पर अपने ऐप्लिकेशन पर नौकरियों को चलाने के लिए एक ऐड-ऑन है जो, बहुत एक पारंपरिक में क्रॉन की तरह है सर्वर पर्यावरण। तो आपको वास्तव में क्रॉन या रत्न के साथ कभी भी बेवकूफ/खिलाड़ी की आवश्यकता नहीं है। बस Heroku पर शेड्यूलर एडन का उपयोग करें।

अधिक जानकारी के लिए देखें: https://devcenter.heroku.com/articles/scheduler

+0

हाँ, Heroku समयबद्धक एक बढ़िया विकल्प की तरह लग रहा है, मैं एक छोटे से यह द्वारा बंद कर दिया जब मैं अपने डॉक्स में पढ़ने रखा था "समयबद्धक एक ज्ञात मुद्दा है प्रक्रियाओं को कभी-कभी छोड़ दिया जाता है " – stecd

+0

मेरा मानना ​​है कि यह सही जवाब होगा यदि हरोकू कार्य शेड्यूलर वास्तव में दिन में एक बार विरोध के रूप में सप्ताह में एक बार शेड्यूल करने की अनुमति देता है। – stecd

+0

stecd: कुछ भी आपको हर दिन ट्रिगर करने से रोकता है लेकिन यह केवल रविवार को कुछ करता है। 'अगर दिन! = रविवार तो कुछ भी नहीं करें और वापस लौटें। – jmettraux

1

एक क्रॉन जॉब, एक स्वचालित समय समय पर एक कार्यक्रम चलाने है क्रॉन सॉफ्टवेयर का उपयोग कर।

रूफुस-समयबद्धक क्रॉन से अलग है क्योंकि यह रूबी प्रक्रियाओं के अंदर चलाता है।

तुम क्या वर्णन कर रहे हैं के लिए मेरा मानना ​​है कि या तो ठीक होगा।

0

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

rufus-scheduler शुद्ध माणिक आप रूबी लिख सकते हैं और नौकरियों scheduler.join बुला आपके आवेदन पाश अंदर गहरे लाल रंग का में चल रहे हैं, उदाहरण के लिए, या किसी अन्य सूत्र में ruby your/rufus_scheduler_script.rb बुला है।

मेरी राय में वे क्रॉन साथ आप एक linux आदेश का उपयोग कर रहे हैं, एक ही बातें करते हैं, लेकिन मैं किसी भी अन्य अंतर दिखाई नहीं देता।

other options too हैं, मेरे अनुभव में मुझे रूफस-शेड्यूलर के साथ समस्याएं थीं, और जब भी (उन्हें मेरे रेल ऐप में कक्षाएं नहीं मिलीं, लेकिन शायद सिर्फ एक क्विर्क थी), दूसरी ओर घड़ी की घड़ी ने मेरे लिए काम किया।

2

Rufus-अनुसूचक एक क्रॉन प्रतिस्थापन

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

रूफुस-अनुसूचक "* * * * *" क्रॉन की वाक्य रचना को समझता है। इसने कुछ लोगों को यह कहने का नेतृत्व किया है "रूफस-शेड्यूलर एक क्रोन प्रतिस्थापन होने का प्रयास करता है"। इसे बेहतर तरीके से तैयार किया जा सकता है क्योंकि "कुछ लोगों ने सोचने के बजाय रूफस-शेड्यूलर का दुरुपयोग किया है (जानना) कि पुराने वफादार क्रोन उस स्थिति में बेहतर रहे होंगे"।

एक अच्छा डेवलपर आप कुछ * nix सिस्टम प्रशासक कौशल के बारे में गंभीरता से सोचना चाहिए बनने के लिए, वरना आप एक दर्द के साथ काम करने के लिए हो जाएगा। यह आपके सिस्टम में वर्चुअलबॉक्स में "लिनक्स बॉक्स को इंस्टॉल, रन और प्रबंधित" के रूप में आसान हो सकता है।

एक Rufus-अनुसूचक अनुसूची एक रूबी प्रक्रिया में चलाता है। एक वेनिला दुनिया में, एक रूबी प्रक्रिया में रूफस-शेड्यूलर चलाता है जो सेवाएं http अनुरोध (रेल या सिनात्रा वेब एप्लिकेशन), और, ओह, ओह, जब एप्लिकेशन नहीं चलता है तो शेड्यूल नहीं चलते हैं।

क्रॉन अपने * nix ऑपरेटिंग सिस्टम द्वारा प्रदान की सेवा है। आपके मेजबान पर अन्य एप्लिकेशन और सेवाएं इस पर भरोसा करती हैं। क्रॉन अपने क्रोंटैब को पढ़ता है और दिए गए समय में उसमें लिपि स्क्रिप्ट चलाता है। उत्कृष्ट जब भी, क्रॉन को आपके रेल एप्लिकेशन में स्क्रिप्ट चलाने के लिए कहा जा सकता है।

यह आपको साथ ही रुचि हो सकती है: जिससे अनुसूचित https://devcenter.heroku.com/articles/clock-processes-ruby

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