Синхронный POST с http-kit в ближайшем будущем
Я пытаюсь использовать клиентскую библиотеку http-kit в clojure, чтобы делать синхронные сообщения, возвращающие обещания. Есть ли способ ограничить количество потоков, делающих фактическое сообщение?
Все примеры использования встроенного пула потоков, которые я мог найти, используют примитивную функцию более низкого уровня, называемую request
но все они были для http/get.
Спасибо
1 ответ
Я предполагаю, что вы видели http://http-kit.org/client.html
Мой вопрос: вы хотите сделать синхронный POST или ограничить количество потоков? Вы можете выполнить синхронизацию POST со 100 потоками, так получается, что ваш основной поток будет ожидать возврата запроса.
Может быть, более важно, почему вы хотите ограничить количество потоков?
Также см. 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, поэтому он работает в том же потоке.