我正在制作一个 Messenger 机器人,使用 Ring 作为我的 HTTP 框架。
有时候我想在机器人发送消息之间应用延迟。我期望可以安全地使用 Thread/sleep
,因为这会使活动线程睡眠,而不是整个服务器。是这样吗?还是我应该求助于 clojure/core.async
?
以下是我将写的没有使用 async
的代码:
(match [reply]
; The bot wants to send a message (text, images, videos etc.) after n milliseconds
[{:message message :delay delay}]
(do
(Thread/sleep interval delay)
(facebook/send-message sender-id message))
; More code would follow...
希望能提供一个链接,其中Ring代码的行为在这方面是清晰的,并且提供任何其他解释。