2009-09-22 17 views
10

मेरी टीम में एक बहस है जो बेहतर है: एक विंडोज सेवा या निर्धारित कार्य। हमारे पास नौकरियां चलाने के लिए समर्पित एक सर्वर है और वर्तमान में वे सभी निर्धारित कार्य हैं। कुछ नौकरियां फाइल लेती हैं, उनका नाम बदलती हैं और उन्हें नेटवर्क पर अन्य निर्देशिकाओं में रखती हैं। अन्य नौकरियां एसक्यूएल से डेटा निकालती हैं, इसे संशोधित करती हैं, और इसे कहीं और भेजती हैं। अन्य नौकरियां ftp फाइलें बाहर। बहुत सारी विविधताएं हैं, लेकिन सभी में, वे काफी सरल हैं।निर्धारित कार्य या विंडोज सेवा

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

उत्तर

6

यदि यह लगातार चलता है - विंडोज़ सेवा।

यदि इसे विभिन्न अंतराल पर निर्धारित करने की आवश्यकता है - निर्धारित कार्य।

4

कार्यक्षमता में निर्माण के साथ Sceduling नौकरियां एक पूरी तरह से वैध उपयोग है। एक अच्छी सेवा बनाने के लिए आपको पूर्ण कार्यक्षमता को फिर से बनाना होगा, और जब तक आप विशिष्ट घटनाओं पर प्रतिक्रिया नहीं देना चाहते हैं, मुझे किसी रात्रि नौकरी को सेवा में स्थानांतरित करने का कोई कारण नहीं दिखता है।

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

मैं अपने पहिया

2

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

  1. इस कार्यक्रम के डेटाबेस संचालित होने की जरूरत है:

    यह तुम कहाँ शुरू करने के लिए की एक विचार देने के लिए हमारे कार्य कार्यक्रम के लिए हमारे requirments दस्तावेज़ के एक हिस्से है।

  2. इसे विंडोज़ सेवा के रूप में चलाने की जरूरत है।

  3. नौकरियां अस्तित्व पर है या नहीं आधारित एक स्रोत फ़ाइल के होने की जाँच करने के लिए, और ले कार्रवाई में सक्षम होना चाहिए:

  4. कार्यक्रम निम्नलिखित तरीके से "नौकरियों" प्रोसेस करने में सक्षम होने की जरूरत है स्रोत फ़ाइल का। (यानी प्रसंस्करण के साथ आगे बढ़ते हैं, बनाम रिपोर्ट करते हैं कि फ़ाइल वहां नहीं है, इसे अनदेखा कर रही है क्योंकि यह महत्वपूर्ण नहीं है कि फ़ाइल वहां नहीं है।

  5. नौकरियां एक फाइल एक स्रोत से, एक मचान स्थान पर, एक लक्ष्य स्थान या

  6. कॉपी स्रोत से एक फाइल करने के लिए कॉपी "संसाधन" करते हैं, और फिर या तो मूल फाइल कॉपी करने में सक्षम होने की जरूरत है या लक्ष्य स्थान पर "प्रसंस्करण" का परिणाम या

  7. स्रोत से, एक स्टेजिंग स्थान पर फ़ाइल कॉपी करें, "प्रसंस्करण" करें, और प्रसंस्करण अंतिम परिणाम है।

  8. स्रोतों और गंतव्य है कि नौकरियों के लिए और से कॉपी कर सकते हैं हो सकता है मुक़्तलिफ़: यूएनसी, SFTP, एफ़टीपी, आदि

  9. "संसाधन", हो सकता है, को एनक्रिप्ट/एक फ़ाइल decrypting, एक डेटा पार्स करने सही प्रारूप के लिए फ़ाइल, टर्मिनल अनुकरण, आदि के माध्यम से मेनफ्रेम के लिए फ़ाइल खिला, आमतौर पर एक .exe

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

  11. कार्यक्रम को नौकरी के प्रत्येक चरण की सफलता और विफलता निर्धारित करने में सक्षम होना चाहिए और उचित कार्रवाई करना होगा जो संभवतः लॉगिंग करेगा, और संभवतः अन्य अधिसूचना, विफलता पर आगे प्रसंस्करण, आदि

  12. नौकरियों को निश्चित समय पर सक्रिय करने के लिए कॉन्फ़िगर करने की आवश्यकता है, या कुछ अंतराल पर (वैकल्पिक रूप से कुछ निर्धारित घंटों के दौरान) यानी प्रत्येक 15 मिनट 9:00 - 5 से: 00।

  13. नई नौकरियां जोड़ने के लिए यूआई होना आवश्यक है।

  14. नौकरी को आग लगाने के लिए धक्का देने के लिए एक बटन होना आवश्यक है जैसे टाइमर ईवेंट ने इसे सक्रिय किया था।

  15. कार्यक्रम के मानक प्रदर्शन को एक ऑपरेटर दिखाना चाहिए कि क्या चल रहा है और क्या प्रोग्राम ठीक से काम कर रहा है।

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

+0

धन्यवाद का उपयोग करें। बहुत अच्छा विचार है। – user177213

+0

ऐसा लगता है कि एसक्यूएल सर्वर एकीकरण सेवाएं आपके द्वारा उल्लिखित आवश्यकताओं के लिए एक उपयुक्त फिट हो सकती हैं, कुछ कस्टम स्क्रिप्ट टास्क जो कि बॉक्स से उपलब्ध नहीं हैं, के लिए। यदि आपके पास पहले से ही इन कार्यों के लिए .exe लागू किया गया है (जैसा कि आप उल्लेख करते हैं), तो आप उन्हें एसएसआईएस ढांचे के भीतर उपयोग कर सकते हैं। और परिनियोजन को ऑन-डिमांड या शेड्यूल पर SQL सर्वर जॉब्स का उपयोग करके प्रबंधित किया जा सकता है। –

+0

बेशक, यह अनुमान है कि आप पहले से ही SQL सर्वर का उपयोग कर रहे हैं - मुझे नहीं पता कि अन्य विक्रेताओं से कौन से विकल्प उपलब्ध हैं ... –

5

अनुसूचित कार्य -

  1. जब कुछ निश्चित/पूर्वनिर्धारित अनुसूची पर गतिविधि की जानी चाहिए।
  2. यह ओएस की कम स्मृति और संसाधन लेता है।
  3. स्थापना की आवश्यकता नहीं है।
  4. यह यूआई (जैसे बकाएदारों को अनुस्मारक मेल भेजें।) हो सकता है

Windows सेवा -
  1. जब एक जारी रखने के लिए निगरानी की आवश्यकता है।
  2. यह ओएस को और अधिक उपभोग करके व्यस्त बनाता है।
  3. संस्करण बदलने के दौरान इंस्टॉल/अनइंस्टॉलेशन की आवश्यकता है।
  4. कोई यूआई बिल्कुल नहीं (उदाहरण के लिए।जैसे ही यह आता है एक मेल प्रक्रिया)

उन सब को सुझाव के लिए बुद्धिमानी से

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