core.async

    3熱度

    1回答

    我想弄清楚我的REPL中的core.async,並完全混淆了我的用法(go-loop ... )無法成爲異步/>目的的「go block」! 我去環是像... (async/go-loop [page (range 3)] (if (empty? page) (async/close! ch) (dorun (map (fn [row] (print

    3熱度

    1回答

    我在Clojure去塊中使用線程/睡眠有內部衝突。所以一般不建議有內部的任何長期運行的進程去塊,Stuart Sierra mentions that sleeping in go block is not preferred: 一般情況下,它不會阻塞,睡眠,還是我的任何工作/ O可以被安全地放置在一展身手而不會對系統的吞吐量產生重大影響。 在我的情況下,我想收聽某個頻道上的信息,並在通知用戶它們

    0熱度

    2回答

    我正在啓動幾百個併發的http-kit.client/get請求,並提供回調以將結果寫入單個文件。 什麼是處理線程安全的好辦法?從core.asyc使用chan和<!!? 下面的代碼,我會考慮: (defn launch-async [channel url] (http/get url {:timeout 5000

    4熱度

    1回答

    我想要計算事件的發生率,例如按鍵事件,並顯示它。我也想在事件發生後纔開始計算費率。另一個要求是,在一定數量的按鍵事件之後,費率計算應該停止。我目前的做法是 (defn keypress-chan "Returns a channel that receives keys" [] (let [out (chan) handler (fn [e] (put! out (.

    0熱度

    1回答

    在midje框架內測試的process-async函數產生不一致的結果。大多數情況下,它按照預期進行檢查,但時常會在初始狀態("")中顯示out.json。我在檢查前依靠async-blocker函數等待process-async。 我的方法有什麼問題? (require '[[test-with-files.core :refer [with-files public-dir]]) (def

    0熱度

    1回答

    我正在尋找使用共享的core.asyncpub 0123作爲我的應用程序的主要通信層,作爲在組件之間引入某些間接方式的一種方式。不過,我擔心pub的行爲,特別是如果對於給定主題沒有匹配的sub,它會以靜默方式丟棄項目。在一個大型系統中,這似乎是一個真正令人頭痛的調試問題。有沒有什麼辦法可以檢測到物品掉落,或者至少在這種情況下拋出異常?

    2熱度

    1回答

    考慮下面的代碼片斷: (require '[clojure.core.async :refer :all]) (def my-chan (chan (buffer 10))) (go (while true (>! my-chan (rand)))) 這基本上提供了一個緩衝的信道,它總是包含一些10的隨機數。當通道被消耗時,緩衝區被再次填充。 core.async中是否存

    2熱度

    1回答

    貼圖通道使用Clojure的Core.Async一個可以通過使用傳感器在信道映射? 說,我們有一個: (defn async-inc [n] (let [c (promise-chan)] (put! (inc n)) c)) 是否有映射在此功能的通道類似的簡潔的方式?或者,你必須做這樣的事情: (def my-chan (chan (buffer 10)))

    2熱度

    2回答

    (let [a (clojure.core.async/chan)] (case a a :foo :bar)) #=> :bar 我期望:foo這裏。我究竟做錯了什麼? 另一方面,(condp = chan ...)完成這項工作。 PS: 基本上我嘗試做以下事情: (require '[clojure.core.async :as a]) (let [cha

    1熱度

    1回答

    中有一個名爲alts!的函數來等待多個通道上的消息。在Go中,這叫做select(就像從多個通道中選擇一條消息一樣),但是Clojure中「alt」的含義是什麼? 我知道函數做什麼,但我記住了函數名的時候,我不知道什麼是「低價競標」方式很難?它是「替代品」的捷徑嗎?