2011-06-23 14 views
15

मैं Quartz.NET उपयोग कर रहा हूँ, और मेरे अनुसूचक क्रॉन अभिव्यक्ति के के उपयोग पर काफी निर्भर करता है - जैसे इस लिंक पर विस्तृत लोगों के रूप में:क्रोनएक्सप्रेस - किसी भी लाइब्रेरी को उत्पन्न करने के लिए उन्हें मानव पठनीय रूप में परिवर्तित करें?

http://quartznet.sourceforge.net/tutorial/lesson_6.html

आदर्श रूप में, मैं 2 परिदृश्य चाहते हैं होने के लिए संभव बनाया गया (पहला संभवतः बहुत कठिन है, और इसके लिए कुछ भी कम होने की संभावना है)

1: उपयोगकर्ता को एएसपी.नेट फॉर्म पर क्रॉन अभिव्यक्ति बनाने की क्षमता, जहां वे कौन से मिनट चुनते हैं, घंटे, दिन आदि

2: एक सीआरओ बदलने की क्षमता एन अभिव्यक्ति एक छोटी स्ट्रिंग में, जैसे 'हर {x} मिनट शुक्रवार' या 'एटी {x} ओ घड़ी हर महीने के अंतिम दिन'

मैंने इनके अपने संस्करण लिखना शुरू कर दिया है, लेकिन यह एक बहुत ही भारी काम है और मुझे यह पता लगाना अच्छा लगेगा कि वहां एक लाइब्रेरी है, या यहां तक ​​कि आप लोगों के बारे में कोई संकेत और युक्तियां भी हैं।

नोट: यदि इसके लिए वहां कुछ भी नहीं है और मैं कोड बनाने में (अपेक्षाकृत) सफल हूं, तो अगर कोई इसे चाहता है तो मैं खुशी से स्रोत साझा करूंगा।

+1

कृपया लाइब्रेरी का अपना संस्करण पोस्ट करें। यह मेरे लिए उपयोगी होगा। धन्यवाद –

उत्तर

1

किसी same सवाल कुछ महीने पहले पूछा।
मैं कभी ऐसा कुछ नहीं ढूंढ पाया।
मैं अपना खुद का "कॉन्फ़िगरेटर" कर रहा हूं लेकिन मेरी आवश्यकताएं काफी सरल थीं।

3

मैं NCrontab इस्तेमाल किया थोड़ी देर पहले http://www.raboof.com/Projects/NCrontab/

लेकिन यह यह मानव पठनीय करने के लिए यह अनुवाद नहीं करता है लगता है ...

23

मैंने एक सी # लाइब्रेरी लिखी जो यह सिर्फ करता है। इसे क्रॉन-एक्सप्रेशन-डिस्क्रिप्टर कहा जाता है। https://github.com/bradyholt/cron-expression-descriptor

+0

आपके काम को प्यार किया @Brady :-) लाने के लिए धन्यवाद! –

+3

क्या आप जानते हैं कि विपरीत करने के लिए कोई उपकरण है या नहीं? * "सुबह 11:30 बजे, सोमवार से शुक्रवार" * में दर्ज करें और इसे वापस कर दें: ** "30 11 * * 1-5" ** –

7

नवीनतम Quartz.NET (2.1 इस लेखन के रूप में) का उपयोग करके आप क्रोनशेड्यूलबिल्डर का उपयोग कर क्रॉन अभिव्यक्ति प्राप्त कर सकते हैं।

var t = CronScheduleBuilder.DailyAtHourAndMinute(10, 0).Build() as CronTriggerImpl; 
Console.WriteLine(t.CronExpressionString);// This is the actual Cron 
Console.WriteLine(t.GetExpressionSummary()); // This is the description of that Cron 
+0

@ जानकारी के लिए जोनास धन्यवाद। –

+0

यह वेबसाइट क्वार्ट्ज का उपयोग करके बनाई गई थी: [link] (http://www.cronmaker.com), यह एक उपयोगी उदाहरण हो सकता है जो मानव पठनीय जीयूआई से अभिव्यक्तियां बनाना चाहता है। –

3

मैं जो एक अच्छा इंटरफ़ेस प्रदान करता है इस jQuery प्लगइन का उपयोग कर और उसके बाद में .net/सी # एक डेटाबेस को यह बचाने के लिए एक छिपी हुई फ़ील्ड का उपयोग कर समाप्त हो गया:

दैनिक नौकरियों के लिए अभिव्यक्ति हो रही है।

http://shawnchin.github.com/jquery-cron/

यह मेरे लिए काफी अच्छी तरह से काम करता है। आपको यह जांचने की आवश्यकता हो सकती है कि आप स्ट्रिंग के मोर्चे पर सेकंड्स को "0" पर सेट कर रहे हैं, हालांकि अगर quartz.net का उपयोग करना है, जैसे कि मैं इस प्लगइन के रूप में था, तो सेकंड का समर्थन नहीं करता है।

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