आप सही कर रहे हैं बाहर, इस तत्व है जो Source
द्वारा उत्सर्जित होती हैं के प्रकार है।
चटाई
यह Source
के materialisation का प्रकार है। ध्यान दें कि प्रत्येक चरण (Flow
एस, Sink
एस, आदि) एक मूल्य के साथ भी पूरा हो जाएगा। यह अनिवार्य रूप से चरण के बाद चरण का एक उपज है।
आप इसे चलते समय चरण के साथ बातचीत करने के साधन के रूप में चित्रित कर सकते हैं। अक्का द्वारा प्रस्तावित तैयार किए गए Source
एस के उदाहरणों को देखते हुए इसका सारांश प्राप्त करने का एक अच्छा तरीका है।
Source.single
NotUsed
को अमल में लाना होगा। आपको स्रोत के साथ बातचीत करने का कोई मतलब नहीं है, क्योंकि यह केवल एक तत्व का उत्पादन करेगा और फिर पूरा होगा।
Source.queue
SourceQueue
पर पूरा हो जाएगा। यह एक और दिलचस्प मामला है, क्योंकि आप स्रोत के साथ offer
संदेश भेज सकते हैं। संदेश offer
स्रोत द्वारा उत्सर्जित किए जाएंगे।
Source.maybe
Promise
पर पूरा हो जाएगा। स्रोत को नियंत्रित करने के लिए आप Promise
का उपयोग कर सकते हैं और इसे एक तत्व, या None
उत्सर्जित कर सकते हैं।
जब आप विभिन्न चरणों को जोड़ते हैं, तो ध्यान दें कि प्रत्येक चरण में संभावित रूप से उपयोगी भौतिक मूल्य हो सकता है। आपको viaMat
/toMat
और Keep
DSL का उपयोग कर चुनने के लिए चुनना होगा। एक या अधिक भौतिक मान वापस लौटाए जाएंगे जब run()
को रचना ग्राफ पर बुलाया जाता है।
नीचे के उदाहरणों में प्रकारों पर एक नज़र ले रहा है सबसे अच्छा तरीका है एपीआई का सार प्राप्त करने के लिए है:
val source: Source[Int, MatSrc]
val sink: Sink[Int, MatSnk]
val matSrc: MatSrc = source.toMat(sink)(Keep.left).run()
val matSnk: MatSnk = source.toMat(sink)(Keep.right).run()
val (m1: MatSrc, m2: MatSnk) = source.toMat(sink)(Keep.both).run()
val n: NotUsed = source.toMat(sink)(Keep.none).run()
ध्यान दें कि अधिक संक्षिप्त डीएसएल जो आप कई उदाहरण में पा सकते हैं वास्तव में एक शॉर्टकट है उपरोक्त के लिए, जहां केवल अंतिम चरण (जैसे सिंक) का भौतिक मूल्य रखा जाता है।
val mat3: Mat3 = source.viaMat(flow)(Keep.right).toMat(sink)(Keep.right).run()
आगे पढ़ने के लिए नीचे दिए गए डॉक्स देखें के रूप में
val mat3: Mat3 = source.via(flow).runWith(sink)
में ही है।
http://doc.akka.io/docs/akka/2.4/java/stream/stream-quickstart.html#Materialized_values
स्रोत
2016-12-13 20:01:38