2017-06-29 15 views
6

एक ऐसे केस की कल्पना करें जहां प्रति उपयोगकर्ता में ईवेंट स्ट्रीम हो रहे हैं लेकिन केवल ईवेंट के पहले सप्ताह में रुचि है। उस समय के भीतर नक्शा WithState का उपयोग कर राज्यव्यापी तर्क हो रहा है। उस अवधि के बाद उपयोगकर्ता आने वाली घटनाओं को नजरअंदाज किया जाना चाहिए।स्पार्क स्ट्रीमिंग नक्शा विथस्टेट टाइमआउट को हटाए बिना

चूंकि उपयोगकर्ता की स्थिति मेमोरी लेती है, तो उपयोगकर्ता के सप्ताह की अवधि के बाद इसे पहले से ही देखा जाने वाला मार्कर बदलने के लिए समझदारी होती है।

यदि किसी भी घटना के लिए उसके पहले कार्यक्रम के बाद एक सप्ताह या बाद में कोई उपयोगकर्ता आता है, तो राज्य को पहले से देखे जाने वाले मार्कर में बदलना आसान है।

लेकिन, अगर उस सप्ताह के बाद कोई घटना नहीं आती है, तो राज्य पहले से ही देखा गया मार्कर में कभी नहीं बदलता है, और राज्य हमेशा के लिए स्मृति पर कब्जा जारी रखेगा।

जहां तक ​​मैं समझता हूं, एक टाइमआउट (उपयोगकर्ता के राज्य में) जोड़ने से आपकी सहायता नहीं होगी, क्योंकि आपको टाइमआउट स्थिति के लिए राज्य बदलने की अनुमति नहीं है (समझ में आता है, क्योंकि इसे हटाया जा रहा है)।

क्या इस उपयोग के मामले को प्राप्त करने का कोई आसान तरीका है?

+0

* जहां तक ​​मैं समझता हूं, एक टाइमआउट (उपयोगकर्ता के राज्य में) जोड़ना आपकी सहायता नहीं करेगा, क्योंकि आपको टाइमआउट स्थिति के लिए राज्य बदलने की अनुमति नहीं है (समझ में आता है, क्योंकि इसे हटाया जा रहा है)। * क्या आप इसका विस्तार क्या है? अगर राज्य का समय समाप्त हो गया है, तो इसका मतलब है कि परिभाषित अवधि के लिए कोई नई घटना नहीं आई है। –

+0

यह सच है कि एक टाइमआउट का मतलब है कि उस उपयोगकर्ता के लिए एक सप्ताह के लिए कोई नई घटनाएं नहीं आईं, लेकिन इसका मतलब यह भी है कि उस उपयोगकर्ता के लिए राज्य हटा दिया जाएगा, जिसका अर्थ है कि उसके लिए आने वाली अगली घटना गलती से अपना पहला कार्यक्रम माना जाएगा कभी। मुझे जो चाहिए वह राज्य को निकालने के बजाय है, इसे पहले से देखे गए मार्कर में अपडेट किया गया है। सुनिश्चित नहीं है कि वर्तमान एपीआई इस उपयोग के मामले का समर्थन करता है हालांकि ... – harel

+0

तो मूल रूप से आप जो चाहते हैं वह एक समर्पण तंत्र है? यदि कोई उपयोगकर्ता देखा गया है, तो आप अपने सभी डेटा को आगे बढ़ाना चाहते हैं? –

उत्तर

0

जो मैं समझता हूं, स्पार्क के 2.2 मैप ग्रुप विथस्टेट में समृद्ध टाइमआउट हैं जिनका उपयोग न केवल राज्य को हटाने के लिए किया जा सकता है, बल्कि इसे बदलने के लिए भी किया जा सकता है (here देखें)।

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