gpt4 book ai didi

clojure - 如何让 Clojure go 循环永远运行

转载 作者:行者123 更新时间:2023-12-03 23:38:07 31 4
gpt4 key购买 nike

我想使用 Clojure core.async 编写一个位于循环轮询服务的应用程序,但到目前为止我的尝试意外终止。

当我运行这个程序时,它会打印消息然后退出:

(defn -main
[]
(println "Running forever...?")
(async/go-loop [n 0]
(prn n)
(async/<!! (async/timeout 1000))
(recur (inc n))))

我希望程序永远运行(直到 JVM 进程被杀死)。

实现这一目标的公认方法是什么?

最佳答案

主线程将保持 JVM 进程运行(它不会关心 go 池中的线程)。

通过阻塞主线程来保持它的运行。例如

(defn -main
[]
(println "Running forever...?")
(async/<!! (async/go-loop [n 0]
(prn n)
(async/<! (async/timeout 1000))
(recur (inc n)))))

注意:您不应该使用 <!!内部 go堵塞。您应该改用 <! .

关于clojure - 如何让 Clojure go 循环永远运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42955568/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com