У меня есть конечная точка веб-службы, которая использует изменяемый ресурс из библиотеки Java. Эта конечная точка веб-сервиса может одновременно получать несколько запросов. (конечная точка реализована с использованием Ring/Compojure). Создание этих ресурсов является дорогостоящим, поэтому повторное создание их для каждого вызова веб-службы действительно неэффективно.Лучший способ управления пулом ресурсов в Clojure
Что я хочу сделать, так это создать pool
этого ресурса, который я заполняю при запуске веб-службы. Затем каждый раз, когда вызывается конечная точка, он берет ресурс из пула, использует его для его обработки и затем возвращает его в пул и ждет следующего вызова.
Мне интересно, что было бы лучшим способом сделать это в Clojure? Есть ли «пул» библиотека Clojure, которая могла бы помочь мне в этом?
Я наивно пытался реализовать это, используя вектор в атоме, где каждый элемент вектора является этим ресурсом. Однако он быстро понял, что это не может работать так.
Если вы не против какой-то сверхмощный Java Interop, то [Apache Commons Pool] (https://commons.apache.org/proper/commons- pool /) библиотека всегда присутствует. – ez121sl