Caching 在cache2k中,如何添加新的缓存实现,或者如何临时禁用缓存?

Caching 在cache2k中,如何添加新的缓存实现,或者如何临时禁用缓存?,caching,cache2k,Caching,Cache2k,我试图暂时禁用一组cache2k缓存(我所说的禁用是指:将缓存完全关闭),而在“运行时”(我所说的运行时是指在创建缓存并可能填充缓存之后)使用默认实现似乎无法做到这一点。因此,我想我应该提供一个新的缓存(可能使用现有的缓存实现以及org.cache2k.ForwardingCache,并将每个调用包装起来,以便在禁用的情况下发挥预期的作用)。请注意,我没有使用任何加载器功能(也不想使用) 如何在cache2k中注册新的缓存实现?有没有更好的方法不用加载器就能做到这一点 理想情况下,我想这样做:

我试图暂时禁用一组cache2k缓存(我所说的禁用是指:将缓存完全关闭),而在“运行时”(我所说的运行时是指在创建缓存并可能填充缓存之后)使用默认实现似乎无法做到这一点。因此,我想我应该提供一个新的缓存(可能使用现有的缓存实现以及
org.cache2k.ForwardingCache
,并将每个调用包装起来,以便在禁用的情况下发挥预期的作用)。请注意,我没有使用任何加载器功能(也不想使用)

如何在cache2k中注册新的缓存实现?有没有更好的方法不用加载器就能做到这一点

理想情况下,我想这样做:

public void enableCaching() {
    CacheManager.getInstance().getActiveCaches().forEach(cache -> {
        cache.enable();
    });
}
public void disableCaching() {
    CacheManager.getInstance().getActiveCaches().forEach(cache -> {
        cache.clear();
        cache.disable();
    });
}

嗨,大卫,谢谢你提出这个有趣的问题!你能提供一些关于你的用例的背景信息吗;为什么要禁用缓存?禁用缓存是ops/用户干预还是代表什么事件定期发生的事情?这是客户的要求。其想法是能够调试缓存可能导致的任何问题。在再次启用缓存之前,我将清除缓存,因此我根本不关心缓存内容。是的,这是一个ops干预,不是经常发生的事情。以Hi David的身份提交,感谢您提出的有趣问题!你能提供一些关于你的用例的背景信息吗;为什么要禁用缓存?禁用缓存是ops/用户干预还是代表什么事件定期发生的事情?这是客户的要求。其想法是能够调试缓存可能导致的任何问题。我将在再次启用缓存之前清除缓存,因此我根本不关心缓存内容。是的,这是ops干预,不是经常发生的事情。以