use of com.alicp.jetcache.Cache in project jetcache by alibaba.
the class DefaultCacheMonitorTest method testWithoutLogger.
@Test
public void testWithoutLogger() {
Cache cache = createCache();
testMonitor(cache);
}
use of com.alicp.jetcache.Cache in project jetcache by alibaba.
the class DefaultCacheMonitorTest method testWithManager.
@Test
public void testWithManager() throws Exception {
Cache c1 = createCache();
DefaultCacheMonitor m1 = new DefaultCacheMonitor("cache1");
Cache c2 = createCache();
DefaultCacheMonitor m2 = new DefaultCacheMonitor("cache2");
c1.config().getMonitors().add(m1);
c2.config().getMonitors().add(m2);
DefaultMetricsManager manager = new DefaultMetricsManager(10, TimeUnit.SECONDS, true);
manager.start();
manager.add(m1, m2);
basetest(c1, m1);
basetest(c2, m2);
Cache mc = new MultiLevelCache(c1, c2);
DefaultCacheMonitor mcm = new DefaultCacheMonitor("multiCache");
mc.config().getMonitors().add(mcm);
manager.add(mcm);
basetest(mc, mcm);
manager.cmd.run();
manager.stop();
// Thread.sleep(10000);
}
use of com.alicp.jetcache.Cache in project jetcache by alibaba.
the class DefaultCacheMonitorManager method addCacheUpdateMonitor.
protected void addCacheUpdateMonitor(String area, String cacheName, Cache cache) {
if (cacheMessagePublisher != null) {
CacheMonitor monitor = event -> {
if (event instanceof CachePutEvent) {
CacheMessage m = new CacheMessage();
CachePutEvent e = (CachePutEvent) event;
m.setType(CacheMessage.TYPE_PUT);
m.setKeys(new Object[] { e.getKey() });
cacheMessagePublisher.publish(area, cacheName, m);
} else if (event instanceof CacheRemoveEvent) {
CacheMessage m = new CacheMessage();
CacheRemoveEvent e = (CacheRemoveEvent) event;
m.setType(CacheMessage.TYPE_REMOVE);
m.setKeys(new Object[] { e.getKey() });
cacheMessagePublisher.publish(area, cacheName, m);
} else if (event instanceof CachePutAllEvent) {
CacheMessage m = new CacheMessage();
CachePutAllEvent e = (CachePutAllEvent) event;
m.setType(CacheMessage.TYPE_PUT_ALL);
if (e.getMap() != null) {
m.setKeys(e.getMap().keySet().toArray());
}
cacheMessagePublisher.publish(area, cacheName, m);
} else if (event instanceof CacheRemoveAllEvent) {
CacheMessage m = new CacheMessage();
CacheRemoveAllEvent e = (CacheRemoveAllEvent) event;
m.setType(CacheMessage.TYPE_REMOVE_ALL);
if (e.getKeys() != null) {
m.setKeys(e.getKeys().toArray());
}
cacheMessagePublisher.publish(area, cacheName, m);
}
};
cache.config().getMonitors().add(monitor);
}
}
use of com.alicp.jetcache.Cache in project jetcache by alibaba.
the class DefaultCacheMonitorManager method addMetricsMonitor.
protected void addMetricsMonitor(String area, String cacheName, Cache cache) {
if (defaultMetricsManager != null) {
cache = CacheUtil.getAbstractCache(cache);
if (cache instanceof MultiLevelCache) {
MultiLevelCache mc = (MultiLevelCache) cache;
if (mc.caches().length == 2) {
Cache local = mc.caches()[0];
Cache remote = mc.caches()[1];
DefaultCacheMonitor localMonitor = new DefaultCacheMonitor(cacheName + "_local");
local.config().getMonitors().add(localMonitor);
DefaultCacheMonitor remoteMonitor = new DefaultCacheMonitor(cacheName + "_remote");
remote.config().getMonitors().add(remoteMonitor);
defaultMetricsManager.add(localMonitor, remoteMonitor);
}
}
DefaultCacheMonitor monitor = new DefaultCacheMonitor(cacheName);
cache.config().getMonitors().add(monitor);
defaultMetricsManager.add(monitor);
}
}
use of com.alicp.jetcache.Cache in project jetcache by alibaba.
the class CacheContext method createCacheInvokeContext.
public CacheInvokeContext createCacheInvokeContext(ConfigMap configMap) {
CacheInvokeContext c = newCacheInvokeContext();
c.setCacheFunction((invokeContext, cacheAnnoConfig) -> {
Cache cache = cacheAnnoConfig.getCache();
if (cache == null) {
if (cacheAnnoConfig instanceof CachedAnnoConfig) {
cache = createCacheByCachedConfig((CachedAnnoConfig) cacheAnnoConfig, invokeContext);
} else if ((cacheAnnoConfig instanceof CacheInvalidateAnnoConfig) || (cacheAnnoConfig instanceof CacheUpdateAnnoConfig)) {
CacheInvokeConfig cacheDefineConfig = configMap.getByCacheName(cacheAnnoConfig.getArea(), cacheAnnoConfig.getName());
if (cacheDefineConfig == null) {
String message = "can't find @Cached definition with area=" + cacheAnnoConfig.getArea() + " name=" + cacheAnnoConfig.getName() + ", specified in " + cacheAnnoConfig.getDefineMethod();
CacheConfigException e = new CacheConfigException(message);
logger.error("Cache operation aborted because can't find @Cached definition", e);
return null;
}
cache = createCacheByCachedConfig(cacheDefineConfig.getCachedAnnoConfig(), invokeContext);
}
cacheAnnoConfig.setCache(cache);
}
return cache;
});
return c;
}
Aggregations