Tôi có điểm cuối dịch vụ web sử dụng tài nguyên có thể thay đổi được từ thư viện Java. Điểm cuối dịch vụ web đó có thể nhận nhiều truy vấn cùng một lúc. (điểm cuối được thực hiện bằng cách sử dụng Ring/Compojure). Việc tạo ra các tài nguyên này là tốn kém, vì vậy việc tạo lại chúng cho mọi cuộc gọi dịch vụ web thực sự không hiệu quả.Cách tốt nhất để quản lý một nhóm tài nguyên ở Clojure
Điều tôi muốn làm là tạo một tài khoản pool
mà tôi điền khi dịch vụ web bắt đầu. Sau đó, mỗi lần điểm cuối được gọi, nó lấy một tài nguyên từ hồ bơi, sử dụng nó để xử lý của nó, và sau đó đẩy nó trở lại vào hồ bơi và chờ cuộc gọi tiếp theo xảy ra.
Tôi tự hỏi điều gì sẽ là cách tốt nhất để làm điều đó trong Clojure? Có thư viện Clojure "hồ bơi" có thể giúp tôi với điều đó không?
Tôi ngây thơ đã cố gắng thực hiện điều đó bằng cách sử dụng một vector trong một nguyên tử trong đó mỗi mục của vectơ là tài nguyên đó. Tuy nhiên, nó nhanh chóng học được rằng nó không thể thực sự làm việc theo cách đó.
Nếu bạn không nhớ một số hạng nặng Java interop, các [Apache Commons Pool] (https://commons.apache.org/proper/commons- hồ bơi /) thư viện luôn ở đó. – ez121sl