【发布时间】:2014-03-30 15:17:39
【问题描述】:
我正在尝试使用 clojure 中的 http-kit 客户端库来执行返回承诺的同步帖子。有没有办法限制做实际帖子的线程数?
我能找到的所有使用内置线程池的示例都使用称为 request 的较低级别的原始函数,但它们都是用于 http/get 的。
谢谢
【问题讨论】:
-
我意识到我可以使用claypoole 库来获得我想要的。
我正在尝试使用 clojure 中的 http-kit 客户端库来执行返回承诺的同步帖子。有没有办法限制做实际帖子的线程数?
我能找到的所有使用内置线程池的示例都使用称为 request 的较低级别的原始函数,但它们都是用于 http/get 的。
谢谢
【问题讨论】:
我假设你已经看过 http://http-kit.org/client.html#sync
我的问题是你想做一个同步 POST,还是限制线程数?您可以使用 100 个线程进行同步 POST,碰巧您的主线程将等待请求返回。
也许更重要的是,为什么要限制线程数?
另外,请参阅https://github.com/http-kit/http-kit/blob/master/src/org/httpkit/client.clj,特别是request。您可以处理它的参数映射,例如
{:url "http://yoursite.com" :worker-pool my-thread-pool-executor}
my-thread-pool-executor 必须扩展 ExecutorService。
具体来说,您需要重载submit,这是RespListener 在http-kit 中使用的。您可以使 submit 与您自己的 ExecutorService 实现同步,以便它在同一个线程上运行。
【讨论】: