Throttle
如果其他人跟隨得太快,則會跳過可觀察序列的值。但我需要一種方法來延遲它們。也就是說,我需要設置項目之間的最小延遲,而不會跳過任何。在不跳過值的情況下節流接收Rx.Observable
實際例子:有一個Web服務可以接受請求不會比每秒一次更快;有一個用戶可以添加請求,單個或批量。沒有Rx,我會創建一個列表和一個計時器。當用戶添加請求時,我會將它們添加到列表中。在計時器事件中,我會檢查列表是否爲空。如果不是,我會發送請求並刪除相應的項目。用鎖和所有的東西。現在,通過Rx,我可以創建Subject
,當用戶添加請求時添加項目。但我需要一種方法來確保Web服務不會因應用延遲而被淹沒。
我是Rx的新手,所以也許我錯過了一些明顯的東西。
不是'Thread.Sleep'壞嗎?我一直認爲暫停一個線程是基本上「定時器」的事情是浪費資源。 – 2017-06-18 19:07:05
@VarvaraKalinina - 它發生在它自己的線程上,它不會使其他任何東西死鎖。這種情況很好。 – Enigmativity 2017-06-18 23:37:54
我沒有說它是關於死鎖或阻塞的東西。這是關於資源浪費。幾乎所有的時間你都會做出一個強有力的行動。它可以做其他事情,如果它不被阻止 – 2017-06-19 08:34:52