-
-
Notifications
You must be signed in to change notification settings - Fork 289
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Help wanted] Update expiration date #792
Comments
I'm surprised this (overwriting expiration time) isn't a feature of Akavache personally. There's some good use cases for this, as you can effectively set up a maximum lifetime for a given object but keep extending it for as long as you need it. In my case, for example, I can determine I can keep an object for longer from a result of another API call; getting and then re-inserting it sounds silly and inefficient. In any case, you can use a raw SQL query in the meantime; it's the only reflection-free method I can think of: /// <summary>
/// Refreshes the expiration date of a given key.
/// </summary>
/// <param name="key">The key to be refreshed.</param>
/// <param name="newExpiration">New timespam of expiration relative to current.</param>
public void Refresh(string key, TimeSpan newExpiration)
{
var expiration = _cache.Scheduler.Now + newExpiration;
_cache.Connection.Execute($"UPDATE CacheElement SET Expiration='{expiration.Ticks}' WHERE Key='{key}'");
} |
This would be a good feature to add |
I would like to add a use case. Similar to @Sewer56, I need to refresh the TTL of records when being accessed, but assign them the same expiration period they had before. |
Is there a way to update expiration dates of existing cached items, preferably without reading the object from a disk cache into memory and rewriting it back to the disk (think of large data objects)?
Use case: I query the server for updates of the object and get a
NotModified
response, so I simply want to update the expiration date of the already cached item.The text was updated successfully, but these errors were encountered: