2013-10-26 15 views
11

जावा डेवलपर के रूप में, मुझे बैच प्रोसेसिंग के लिए स्प्रिंग बैच का उपयोग करने के लिए उपयोग किया जाता है, आमतौर पर स्ट्रीमिंग लाइब्रेरी का उपयोग करके एक्सएमएल के साथ बड़ी एक्सएमएल फाइलों को निर्यात करने के लिए उपयोग किया जाता है।बैच प्रोसेसिंग और कार्यात्मक प्रोग्रामिंग

अब मैं स्कैला एप्लिकेशन विकसित कर रहा हूं, और आश्चर्यचकित हूं कि बैच प्रोसेसिंग प्राप्त करने के लिए कोई फ्रेमवर्क, टूल या दिशानिर्देश है या नहीं।

मेरा स्कैला एप्लिकेशन केक पैटर्न का उपयोग करता है और मुझे यकीन नहीं है कि मैं स्प्रिंगबैच के साथ इसे कैसे एकीकृत कर सकता हूं। साथ ही, मैं Functional programming in Scala में वर्णित दिशानिर्देशों का पालन करना चाहता हूं और IO monad जैसे सामानों का उपयोग करके कार्यात्मक शुद्धता रखने की कोशिश करता हूं ...

मुझे पता है कि यह एक खुला प्रश्न है, लेकिन मैंने इसके बारे में कुछ भी नहीं पढ़ा ...

क्या किसी ने पहले से ही कार्यात्मक बैच प्रोसेसिंग हासिल की है? यह कैसे काम कर रहा था? क्या मुझे ऐसा मुख्य होना चाहिए जो आईओ मोनैड में बैच प्रोसेसिंग ऑपरेशन बनाता है और इसे चलाता है? क्या पुनरारंभ करने में मदद करने, निगरानी करने या संभालने के लिए कोई उपकरण या दिशानिर्देश है, जैसे कि हम जावा में स्प्रिंग बैच का उपयोग करते हैं। क्या आप स्कैला में स्प्रिंग बैच का उपयोग करते हैं? एक एक्सएमएल उत्पन्न करने वाले उपचार को शुरू करने के लिए जेएमएस/एएमक्यूपी संदेश के उदाहरण के लिए उदाहरण के लिए आप एकीकरण भाग को कैसे संभालेंगे?

subjet पर किसी भी प्रतिक्रिया का स्वागत करते

+2

क्या स्प्रिंग बैच क्या कर रहा है यह बताने के लिए कहीं अच्छा परिचय है? वेबसाइट को समझना मेरे लिए काफी मुश्किल है। –

+2

मुझे नहीं लगता कि "शुद्धता" एक वांछनीय लक्ष्य है (w.r.t. रसायन शास्त्र के अलावा कुछ भी)। सार्वजनिक रूप से अपरिवर्तनीय प्रकारों का उपयोग करना बहुत व्यावहारिक मूल्य है। आपके कोड से सभी परिवर्तनीय डेटा को समाप्त करना नहीं है। –

+0

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

उत्तर

4

आप एप्लिकेशन की किस तरह आप स्काला के साथ विकसित कर रहे हैं उल्लेख नहीं है, इसलिए मैं यहाँ जंगली अनुमान करने जा रहा हूँ और लगता है कि आप एक सर्वर साइड एक कर रहे हैं। जंगली अनुमान के साथ आगे बढ़ना मान लें कि आप Akka का उपयोग कर रहे हैं ... क्योंकि आप इसका उपयोग कर रहे हैं, है ना? :)

उस स्थिति में, मुझे लगता है कि आप जो खोज रहे हैं वह Akka Quartz Scheduler है, आधिकारिक क्वार्ट्ज एक्सटेंशन और अक्का में क्रॉन-स्टाइल शेड्यूलिंग के लिए उपयोगिताओं। मैंने इसे स्वयं नहीं किया है, लेकिन आपकी आवश्यकताओं से ऐसा लगता है कि अक्का + यह मॉड्यूल एक अच्छा फिट होगा। ध्यान रखें कि अक्का पहले से ही असफल अभिनेताओं की पुनरारंभ करने के लिए हुक प्रदान करता है, और मुझे नहीं लगता कि अभिनेताओं में बनाए गए जीवन चक्र कॉलबैक का लाभ उठाने वाले बैच प्रक्रियाओं की निगरानी करना मुश्किल होगा।

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

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