I\'m working with ehcache 2.5.4.
I have an object that needs to be cached through out the day and refreshed with a new value at 00:00am every day.
Currently with
I've done this by extending Ehcache's Element
class like so:
class EvictOnGivenTimestampElement extends Element {
private static final long serialVersionUID = ...;
private final long evictOn;
EvictOnGivenTimestampElement(final Serializable key, final Serializable value, final long evictOn) {
super(key, value);
this.evictOn = evictOn;
}
@Override
public boolean isExpired() {
return System.currentTimeMillis() > evictOn;
}
}
The rest is as easy as putting new instance of EvictOnGivenTimestampElement
object into the cache instead of Element
.
Advantage of this approach is that you don't have to worry about external cronjobs, etc. And the obvious disadvantage is the attachment to Ehcache API which I hope won't change too often.