我尝试解决的方案如下,我有一个测试程序,它将Web发送到系统上的Web端点.
该测试程序有一个运行的jetty Web服务器,它希望从外部系统进行回调,从而完成一个成功的测试周期.如果在特定时间范围(超时)内未收到回调,则测试失败.
为了实现这一点,我希望测试运行器等待jetty处理程序将在回调时设置的"事件".
我想过使用java的CyclicBarrier,但我想知道在clojure中是否有一种惯用的方法可以解决这个问题.
谢谢
你可以用promise你最近询问:)这样的东西:
(def completion (promise))
; In test runner.
; Wait 5 seconds then fail.
(let [result (deref completion 5000 :fail)]
(if (= result :success)
(println "Great!")
(println "Failed :(")))
; In jetty on callback
(deliver completion :success)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |