publisherCache = CacheBuilder.newBuilder() .concurrencyLevel(1) .maximumSize(500) .refreshAfterWrite(CACHE_DURATION,TimeUnit.SECONDS).build( new CacheLoader<Long, MediaPublisher>() { @Override public ListenableFuture<MediaPublisher> reload(Long key, MediaPublisher oldValue) throws Exception { checkNotNull(key); checkNotNull(oldValue); ListenableFutureTask<MediaPublisher> task = ListenableFutureTask.create(() -> load(key)); executor.submit(task); return task; } @Override public MediaPublisher load(Long appId) throws Exception { long startTime = System.currentTimeMillis(); try { MediaPublisher publisher = mediaPublisherDAO.getPublisher(appId); PerfCounter.count(UnionServiceConstants.COUNTER_GET_MEDIA_PUBLISHER + ".db", 1, System.currentTimeMillis() - startTime); if (null == publisher) { PerfCounter.count(UnionServiceConstants.COUNTER_GET_MEDIA_PUBLISHER_NULL, 1); return EMPTY_PUBLISHER; } return publisher; }catch (Exception e){ } } } );
guava初始化缓存
最新推荐文章于 2022-10-24 17:38:38 发布