विंडोज सर्विस या विंडोज टास्क शेड्यूलर?


10

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

C # / DotNet प्रोग्रामिंग में इसे प्राप्त करने के लिए मुझे दो विकल्प दिखाई देते हैं।

  • इसके अंदर टाइमर अप्रोच वाली विंडोज सर्विस बनाना।
  • कंसोल प्रोग्राम और विंडोज़ कार्य शेड्यूलर का उपयोग करके इसे शेड्यूल करें।

आप किसे पसंद करते हैं और क्यों?


3
मुझे लगता है कि यह प्रश्न SO
नवीन

1
वास्तव में, यह एक अच्छा सॉफ्टवेयर डिज़ाइन प्रश्न है और जब आप इसे SO पर पूछते हैं, तो संभवत: पांच घंटों में आपके पास कम से कम पांच अच्छे उत्तर होंगे।
तीव्र

1
मैंने मतदान बंद कर दिया, यह वास्तव में SO
जैको प्रीटोरियस

2
यह प्रश्न या तो गुण के आधार पर एक व्यक्तिपरक और / या विस्तारित चर्चा करता है। यह यहाँ विषय पर बहुत ज्यादा है और वहाँ व्यक्तिपरक और तर्कपूर्ण है।

2
मुझे यकीन नहीं है, मुझे लगता है कि आखिरी वाक्य "आप किसे पसंद करते हैं और क्यों?" वहाँ पर बॉट्स को ट्रिगर करेगा। वास्तविक उत्तर के बाद से इसका बेहतर परिणाम यहां मिल सकता है
TheLQ

जवाबों:


2

इसी विषय को लेकर कल से मेरे एक सहकर्मी की टिप्पणियाँ

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

2005 से जॉन गैलोवे का लेख "// TODONT: एक अनुसूचित प्रक्रिया को चलाने के लिए विंडोज सेवा का उपयोग करें" एक अच्छा पढ़ा है। मेरा सुझाव है कि टिप्पणियों को भी पढ़ा जाना चाहिए क्योंकि चर्चा अभी भी जारी है और साथ ही साथ कुछ अच्छे तर्क भी प्रदान करते हैं।

व्यक्तिगत रूप से, मैं इस पर अपने सहयोगी से सहमत हूं। जहां तक ​​हो सके इसे साधारण ही रखें। और अगर आप Win2008 सर्वर पर तैनाती कर रहे हैं, तो कार्य अनुसूचक और मानक अनुसूचक प्रस्ताव सभी सुविधाओं की जाँच करें। मेरे लिए, हत्यारा एक निर्धारित कार्य शुरू करने के लिए था जब कोई घटना होती है।


4

सेवाओं का उपयोग या तो प्रशासनिक उद्देश्यों के लिए किया जाता है या कई अनुप्रयोगों के लिए सेवा प्रदान करने के लिए किया जाता है।

अनुसूचियों का उपयोग कई बार किसी कार्य को चलाने के लिए किया जाता है जिसके लिए अतिरिक्त अनुमतियों की आवश्यकता नहीं होती है।


3

मैंने विंडोज शेड्यूलर का उपयोग करने के लिए तर्क सुना है, लेकिन हमेशा एक सेवा के रूप में मेरे ऐप को छोड़ने के लिए चुना है। पहले मैंने सोचा कि यह एक संकुल वातावरण में एक बेहतर समाधान होगा लेकिन यह वास्तव में सच नहीं है। लब्बोलुआब यह है कि मेरे पास बेहतर डिज़ाइन की तरह "महसूस" के अलावा कोई और कारण नहीं है।


0

आप क्यों नहीं कोशिश करते हैं Quartz.net
मैंने इसे एक बार इस्तेमाल किया है और मैं कह सकता हूं कि यह आपको अपना खुद का शेड्यूलर बनाने के लिए एक शक्तिशाली ढांचा है, और यह एक पूर्व निर्मित सेवा प्रदान करता है जो आपकी निर्धारित नौकरी चलाएगा (डेटाबेस में संग्रहीत या सिर्फ एक XML फ़ाइल में ) http://quartznet.sourceforge.net/


2
-1 यह सवाल का बिल्कुल भी जवाब नहीं देता है और टिप्पणी के रूप में बेहतर होगा।
तमारा विज्समैन

0

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.