当前位置: 动力学知识库 > 问答 > 编程问答 >

Is there a way to run custom code on Azure Cache expiration? (where last cached value is accessible)

问题描述:

What I mean is a kind of event or callback which is called when some cached value is expiring. Supposedly this callback should be given the currenlty cached value, for example, to store it somewhere else apart from caching.

To find such a way, I have reviewed Notifications option, but they look like they are applicable for explicit actions with cache like adding or removing, whereas expiration is a kind of thing that occurs implicitly. I found out that none of these callbacks is not called many minutes after cache value has expired and has become null, while it is called normally within polling interval if I call DataCache.Remove explicitly (wrong, see update below).

I find this behavior strange as ASP.Net has such callback. You can even find an explanation how to utilize it here on SO.

Also, I tried DataCache Events. It is writtent in MSDN that literally

This API supports the .NET Framework infrastructure and is not intended to be used directly from your code.

Nevertheless I created a handler for these event to see if I can test its args like CacheOperationStartedEventArgs.OperationType == CacheOperationType.ClearCache but it seemed to be in vain.

At the moment, I started to think about workarounds of this issue of the lack of required callback. So suggestions how to implement them are welcome too.

UPDATE. After more attentive and patient testing I found out that notification with DataCacheOperations.ReplaceItem is sent after expiration. Regrettably, I did not find the way to get the value that was cached before the expiration had occurred.

分享给朋友:
您可能感兴趣的文章:
随机阅读: