请考虑以下代码:
(let
[slave-agent (agent 0)
run-slave (fn [_] (println "running slave agent"))
run-master (fn [_]
(loop []
(println "sending to slave agent")
(send-off slave-agent run-slave)
(Thread/sleep 1000)
(recur)
)
)
master-agent (agent nil)
]
(send-off master-agent run-master)
)
使用发送/发送的任意组合,我无法运行从属代理。 但是当我在经典的java.lang.Thread中运行run-master时,一切正常。
有没有人有想法。
谢谢
此致
J-ç
答案 0 :(得分:2)
send
一直持续到动作(或事务)完成(并且已提交)。但是你的run-master永远不会返回。因此,您只需累积send-off
个实际上从未提交执行的请求。尝试这样的事情:
(defn run-master
[_]
(send-off slave-agent run-slave)
(send-off *agent* run-master)
(Thread/sleep 1000))