मेरे पास आने वाली घटनाओं का एक गुच्छा है और मुझे बिना किसी नुकसान के उन्हें निष्पादित करना है, लेकिन मैं यह सुनिश्चित करना चाहता हूं कि वे उपयुक्त समय स्लॉट पर बफर और उपभोग कर रहे हों। किसी के पास कोई समाधान है?एक अवलोकन के उपभोग करने की "दर सीमा" का सबसे अच्छा तरीका क्या है?
मुझे आरएक्स में कोई भी ऑपरेटर नहीं मिल रहा है जो घटनाओं के नुकसान के बिना ऐसा कर सकता है (थ्रोटल - घटनाओं को खो देता है)। मैंने बुफर्ड, देरी इत्यादि भी माना है ... एक अच्छा समाधान नहीं मिल रहा है।
मैं बीच में एक टाइमर डाल करने की कोशिश की है, लेकिन किसी भी तरह यह बिल्कुल काम नहीं करता:
GetInitSequence()
.IntervalThrottle(TimeSpan.FromSeconds(5))
.Subscribe(
item =>
{
Console.WriteLine(DateTime.Now);
// Process item
}
);
public static IObservable<T> IntervalThrottle<T>(this IObservable<T> source, TimeSpan dueTime)
{
return Observable.Create<T>(o =>
{
return source.Subscribe(x =>
{
new Timer(state =>
o.OnNext((T)state), x, dueTime, TimeSpan.FromMilliseconds(-1));
}, o.OnError, o.OnCompleted);
});
}
आप एक संगमरमर जोड़ सकते हैं नहीं है digram दिखा रहा है कि आपके पास क्या है, और आप क्या चाहते हैं? दूसरों की तरह, मुझे यकीन नहीं है कि आप क्या हासिल करने की कोशिश कर रहे हैं, क्योंकि मुझे लगता है कि बफर ठीक है। –
आप क्या सीमित कर रहे हैं? – Fredrick