Clojure 薄板分批队列

Clojure 薄板分批队列,clojure,channel,lamina-clojure,Clojure,Channel,Lamina Clojure,我正在尝试编写一个web服务,它接收请求,将它们放入队列,然后以2个批处理它们。响应可以直接发送,我正在尝试如下使用薄板(尽管不确定它是正确的选择) 但这不起作用…:(我浏览了所有的Lamina文档,但不知道如何使用这些通道。有人能确认Lamina是否支持这种行为并建议可能的解决方案吗?Lamina的要点是,你不想永远循环:你想让Lamina的调度程序在任何时候使用其池中的线程为你工作有足够的数据进行处理。因此,不要使用非常低级的读取通道函数,而是使用接收注册回调一次,或者(更常见的情况是)接收

我正在尝试编写一个web服务,它接收请求,将它们放入队列,然后以2个批处理它们。响应可以直接发送,我正在尝试如下使用薄板(尽管不确定它是正确的选择)


但这不起作用…:(我浏览了所有的Lamina文档,但不知道如何使用这些通道。有人能确认Lamina是否支持这种行为并建议可能的解决方案吗?

Lamina的要点是,你不想永远循环:你想让Lamina的调度程序在任何时候使用其池中的线程为你工作有足够的数据进行处理。因此,不要使用非常低级的
读取通道
函数,而是使用
接收
注册回调一次,或者(更常见的情况是)
接收所有
为通道每次接收数据注册回调。例如:

(def ch (lamina/channel))

(lamina/receive-all (lamina/partition* 2 channel)
                    (partial apply process-batch))

(defn handler [req]
  (lamina/enqueue ch req)
  {:status 200
   :body "ok"})
(def ch (lamina/channel))

(lamina/receive-all (lamina/partition* 2 channel)
                    (partial apply process-batch))

(defn handler [req]
  (lamina/enqueue ch req)
  {:status 200
   :body "ok"})