【发布时间】:2016-01-08 04:40:57
【问题描述】:
我有一个 clojure 处理应用程序,它是一个通道管道。每个处理步骤都异步进行计算(即使用 http-kit 或其他东西发出 http 请求),并将结果放在输出通道上。这样下一步就可以从该通道读取数据并进行计算。
我的主要功能是这样的
(defn -main [args]
(-> file/tmp-dir
(schedule/scheduler)
(search/searcher)
(process/resultprocessor)
(buy/buyer)
(report/reporter)))
目前,调度程序步骤驱动管道(它没有输入通道),并为链提供工作负载。
当我在 REPL 中运行它时:
(-main "some args")
由于调度程序的无限性,它基本上永远运行。更改此架构以使我可以从 REPL 关闭整个系统的最佳方法是什么?关闭每个通道是否意味着系统终止?
一些广播频道会有帮助吗?
【问题讨论】:
-
不幸的是,这也杀死了 REPL。我会尝试组件方法
标签: clojure core.async