2009-02-03 16 views
47

की सिफारिश करें मैं एक सी # लाइब्रेरी की तलाश में हूं, अधिमानतः ओपन सोर्स, जो मुझे उचित लचीलापन के साथ कार्यों को शेड्यूल करने देगी। विशेष रूप से, मुझे समय की हर एन इकाइयों के साथ-साथ "हर सप्ताह सप्ताह XXXX समय" या "हर सोमवार को XXXX समय" चलाने के लिए चीजों को शेड्यूल करने में सक्षम होना चाहिए। इससे अधिक सुविधाएं अच्छी होंगी, लेकिन आवश्यक नहीं है। यह कुछ ऐसा है जो मैं एक एज़ूर वर्कररोल में उपयोग करना चाहता हूं, जो तुरंत विंडोज अनुसूचित कार्य, "एट", "क्रॉन" और किसी तीसरे पक्ष के ऐप को नियंत्रित करता है जिसके लिए इंस्टॉलेशन और/या जीयूआई संचालित करने की आवश्यकता होती है। मैं एक पुस्तकालय की तलाश में हूँ।सी # कार्य शेड्यूलिंग लाइब्रेरी

+1

चेक बाहर मूल रूप से उपलब्ध Azure शेड्यूलर, 2014 में शुरू की गई - यह अधिक तो क्वार्ट्ज की तरह http://azure.microsoft.com/en-us/services/scheduler/ – mvark

उत्तर

55

http://quartznet.sourceforge.net/

"Quartz.NET बहुत propular के एक बंदरगाह खुला स्रोत जावा कार्य शेड्यूलिंग ढांचे, क्वार्ट्ज है (sic!)।"

पुनश्च: बुद्धिमान के लिए वर्ड, सिर्फ काम ;-)

+0

quartz.net शेड्यूलिंग के लिए विंडोज शेड्यूलर या टाइमर का उपयोग करता है? –

+1

लेकिन यह बॉक्स के बाहर async/प्रतीक्षा का समर्थन नहीं करता है। –

+1

यदि आपके पास पूल में 20 कार्य और 5 धागे हैं, तो यह गंभीर बग है, यह पहले कुछ कार्यों को अधिक बार निष्पादित करता है और लैटस्ट tsks को हर 15 सेकंड में एक बार के बजाय प्रति मिनट केवल एक बार निकाला जाता है जैसा मैंने पूछा है। और @ माइकल-सिंक के रूप में उल्लेख किया गया है, यह async/प्रतीक्षा का समर्थन नहीं करता है। –

6

कोडप्रोजेक्ट पर A New Task Scheduler Class Library for .NET देखें।

+0

, लेकिन यह इच्छा है कि अगर, पता करने की जरूरत लंबे समय तक समर्थित lib। उद्यम कारणों से। –

5

मैंने पढ़ा है पर जब quartz.net नेविगेट करने के लिए कोशिश मत करो Quartz के बारे में इस सवाल का How might I schedule a C# Windows Service to perform a task daily? में। यह एक सी # पुस्तकालय है और लचीला शेड्यूलिंग के लिए अनुमति देता है।

3

क्वार्ट्ज एक अच्छा समाधान की तरह लगता है।

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

यह चीज़ ईमानदारी से एक दुःस्वप्न (डिजाइन और कार्यान्वित करने के लिए बहुत कुछ नहीं थी, लेकिन शेड्यूलिंग तर्क ड्रैग का थोड़ा सा था)।

मैं "खुद को रोल करने" का निर्णय लेने से पहले अन्य सभी मार्गों को थकाऊ अनुशंसा करता हूं (ए.के.ए. पहिया को फिर से शुरू करें!)।

7

मैंने अपने जावा दिनों में क्वार्ट्ज का उपयोग किया और यह बहुत अच्छा काम किया। अब मैं इसे कुछ नेट काम के लिए उपयोग कर रहा हूं और यह भी बेहतर काम करता है (बेशक इसमें स्थिर होने के लिए वहां कई सालों हैं)। तो मैं निश्चित रूप से इसके लिए सिफारिशों को दूसरी बार।

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

1

Aditi Technologies से Scheduler नामक एक नया क्लाउड आधारित शेड्यूलर है।

समयबद्धक डेवलपर्स HTTP webhooks सरल या जटिल क्रॉन कार्यक्रम पर चलने वाले के माध्यम से कार्य के निष्पादन के शेड्यूल करने के लिए अनुमति देता है।

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