Comments (6)
@ithinkicancode The lookup
function would return a ZManaged
instead of a ZIO
and then when the lookup function is run we would evaluate the acquire
action of the ZManaged
and store the release action in the cache, running it when the cache entry was evicted. The entire cache would likely be created in the context of a managed effect to ensure that all acquired resources were released when that scope was closed.
from zio-cache.
Released in https://github.com/zio/zio-cache/releases/tag/v0.1.2. I think we can close this issue now!
from zio-cache.
Hi @vigoo, can you elaborate or can you give an example? Currently, a cache value is stored as exit: Exit[Error, Value]
in the MapValue.Complete
case class. Do you mean it should be replaced as exit: ZManaged[Any, Error, Value]
?
from zio-cache.
I start working on that issue but would appreciate some advice if possible (see #71 )
from zio-cache.
The interface of the cache itself must change, since the resource management mechanism must be aware of when a resource is done being used. This implies: not only is the lookup
function resourceful, but also the get
function on the cache is resourceful.
@adamgfraser It will be interesting to see how this shakes out in a 2.0 world.
from zio-cache.
I think I got something working on #71 and I would appreciate some feedback on the question I added as comments in my code before going forward with this PR.
Also the trackAccess function is really obscure to me, I really don't understand how it works and I am not sure to understand its goal (make sure that cache does not exceed is capacity I guess)?
from zio-cache.
Related Issues (20)
- Allow batch lookups HOT 1
- Delete Lookup?
- Ability to transform value HOT 1
- Alternative cost/weight per entry HOT 1
- Looking up an expired item increases both the 'hits' and 'misses' stats of the cache.
- Compat with ZIO 2.1.0-RC2 HOT 1
- Ability to trigger a lookup call deliberately
- Ability to clear the cache
- Ability to add callback/hook to expiry events
- Ability to iterate/query items in the cache HOT 1
- Ability to set an initial size in addition to `capacity`?
- Provide more stats in `CacheStats`
- Force specifying a name / description for the cache when a cache is created
- Add tests to cover more complex scenarios and cross-platform cases. HOT 2
- Test fails when executed in IntelliJ HOT 3
- Ability to set expiry time from lookup function HOT 1
- Refined result from `get`
- Optional jitter for the cache ttl
- Enhance cache lookup HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zio-cache.