如何生成一个简单的BufferedImage并将其保存为Clojure中的png文件?
当然,我想用core.async将各种请求包装到外部服务,同时仍然通过一些操作返回这些操作的结果chan.
我想要处理抛出的异常和超时(即操作需要比预期更长的时间才能返回,或者能够在相同任务的各种服务中进行选择,但具有不同的方法或服务质量.
显示能够处理错误,超时和正确返回结果的示例的最小可行示例似乎是:
(require '[clojure.core.async :refer [chan go timeout <! >! alt!]])
(def logchan (chan 1))
(go (loop []
(when-let [v (<! logchan)]
(println v)
(recur))))
(dotimes [_ 10]
(go
(let [result-chan (chan 1)
error-chan (chan 1)
timeout-chan (timeout 100)]
(go
(try
(do (<! (timeout (rand-int 200)))
(>! result-chan (/ 1 (rand-int 2))))
(catch Exception e (>! error-chan :error))))
(>! logchan (alt! [result-chan error-chan timeout-chan]
([v] (if v v :timeout)))))))
Run Code Online (Sandbox Code Playgroud)
这段代码打印出像
1
:error
1
:error
:error
:timeout
:error …Run Code Online (Sandbox Code Playgroud) 我有类型的传入数据{:loan/amount 1200}.
是否有可能使用plumatic Schema强制执行此操作,即将{:loan/amount 1200M}数字(甚至是数字串)强制转换为大数字?
我不知道如何定义新的数据类型(如s/Bigdec),然后确保它用于clojure.core/bigdec强制某个值为a java.math.BigDecimal.
我希望它以某种方式返回450,$ 1只是一个愚蠢的变量名称.这就像格式的反面.实现这一目标的clojure正则表达式魔法是什么?
(re-something #"$1\sUSD" "450 USD")
Run Code Online (Sandbox Code Playgroud)