* Clean up DistributedCache and add additional checks * Add IEnumerable overloads to DistributedCacheExtensions * Update handlers to use new IEnumerable overloads * Move DistributedCacheExtensions to Core * Restructure cache refreshers into folders * Add IDistributedCacheNotificationHandler * Rewrite DistributedCacheBinder into seperate IDistributedCacheNotificationHandler implementations * Obsolete DistributedCacheBinder and use new IDistributedCacheHandler implementations * Clean up ServerMessengerBase * Ensure cache refreshers only process distinct values * Add support for publishing multiple notifications and filter on handler type * Suppress compatibility issues * Remove DistributedCacheBinder and suppress compatibility issues * Add ScopedNotificationPublisher<TNotificationHandler> * Improve notification type lookup/enumeration * Ensure INotificationAsyncHandler handles multiple notitications sequentially * Minimize cache instruction JSON * Chunk notifications by type to keep publish order * Only serialize required RefreshInstruction properties
15 lines
372 B
C#
15 lines
372 B
C#
using Umbraco.Cms.Core.Composing;
|
|
|
|
namespace Umbraco.Cms.Core.Cache;
|
|
|
|
public class CacheRefresherCollection : BuilderCollectionBase<ICacheRefresher>
|
|
{
|
|
public CacheRefresherCollection(Func<IEnumerable<ICacheRefresher>> items)
|
|
: base(items)
|
|
{
|
|
}
|
|
|
|
public ICacheRefresher? this[Guid id]
|
|
=> this.FirstOrDefault(x => x.RefresherUniqueId == id);
|
|
}
|