本文整理了Java中com.github.benmanes.caffeine.cache.Caffeine.ticker()
方法的一些代码示例,展示了Caffeine.ticker()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Caffeine.ticker()
方法的具体详情如下:
包路径:com.github.benmanes.caffeine.cache.Caffeine
类名称:Caffeine
方法名:ticker
[英]Specifies a nanosecond-precision time source for use in determining when entries should be expired or refreshed. By default, System#nanoTime is used.
The primary intent of this method is to facilitate testing of caches which have been configured with #expireAfterWrite, #expireAfterAccess, or #refreshAfterWrite.
[中]指定纳秒精度的时间源,用于确定条目何时过期或刷新。默认情况下,使用系统#纳米时间。
此方法的主要目的是方便测试已配置为#expireAfterWrite、#expireAfterAccess或#refreshAfterWrite的缓存。
代码示例来源:origin: ben-manes/caffeine
@Test(expectedExceptions = NullPointerException.class)
public void ticker_null() {
Caffeine.newBuilder().ticker(null);
}
代码示例来源:origin: ben-manes/caffeine
@Test(expectedExceptions = IllegalStateException.class)
public void ticker_twice() {
Caffeine.newBuilder().ticker(Ticker.systemTicker()).ticker(Ticker.systemTicker());
}
代码示例来源:origin: ben-manes/caffeine
public void testTicker_setTwice() {
Ticker testTicker = Ticker.systemTicker();
Caffeine<Object, Object> builder =
Caffeine.newBuilder().ticker(testTicker);
try {
// even to the same instance is not allowed
builder.ticker(testTicker);
fail();
} catch (IllegalStateException expected) {}
}
代码示例来源:origin: ben-manes/caffeine
@Test
public void ticker() {
Ticker ticker = new FakeTicker()::read;
Caffeine<?, ?> builder = Caffeine.newBuilder().ticker(ticker);
assertThat(builder.ticker, is(ticker));
builder.build();
}
代码示例来源:origin: ben-manes/caffeine
public void testAsMapValues_iteratorRemove() {
Cache<Integer, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder()
.expireAfterWrite(1000, TimeUnit.MILLISECONDS)
.executor(MoreExecutors.directExecutor())
.ticker(fakeTicker::read));
cache.put(10, 20);
Iterator<Integer> iterator = cache.asMap().values().iterator();
iterator.next();
iterator.remove();
assertEquals(0, cache.size());
}
}
代码示例来源:origin: ben-manes/caffeine
public void testAsMapKeySet_contains() {
Cache<Integer, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder()
.expireAfterWrite(1000, TimeUnit.MILLISECONDS)
.executor(MoreExecutors.directExecutor())
.ticker(fakeTicker::read));
cache.put(10, 20);
fakeTicker.advance(500, TimeUnit.MILLISECONDS);
cache.put(20, 22);
cache.put(5, 10);
fakeTicker.advance(501, TimeUnit.MILLISECONDS);
assertTrue(cache.asMap().keySet().contains(20));
assertTrue(cache.asMap().keySet().contains(5));
assertFalse(cache.asMap().keySet().contains(10));
}
代码示例来源:origin: ben-manes/caffeine
public void testAsMapValues_contains() {
Cache<Integer, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder()
.expireAfterWrite(1000, TimeUnit.MILLISECONDS)
.executor(MoreExecutors.directExecutor())
.ticker(fakeTicker::read));
cache.put(10, 20);
fakeTicker.advance(500, TimeUnit.MILLISECONDS);
cache.put(20, 22);
cache.put(5, 10);
fakeTicker.advance(501, TimeUnit.MILLISECONDS);
assertTrue(cache.asMap().values().contains(22));
assertTrue(cache.asMap().values().contains(10));
assertFalse(cache.asMap().values().contains(20));
}
代码示例来源:origin: ben-manes/caffeine
public void testAsMapKeySet() {
Cache<Integer, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder()
.expireAfterWrite(1000, TimeUnit.MILLISECONDS)
.executor(MoreExecutors.directExecutor())
.ticker(fakeTicker::read));
cache.put(10, 20);
fakeTicker.advance(500, TimeUnit.MILLISECONDS);
cache.put(20, 22);
cache.put(5, 10);
fakeTicker.advance(501, TimeUnit.MILLISECONDS);
Set<Integer> foundKeys = Sets.newHashSet();
for (Integer current : cache.asMap().keySet()) {
foundKeys.add(current);
}
assertEquals(ImmutableSet.of(20, 5), foundKeys);
}
代码示例来源:origin: ben-manes/caffeine
public void testAsMap_containsKey() {
Cache<Integer, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder()
.expireAfterWrite(20000, TimeUnit.MILLISECONDS)
.executor(MoreExecutors.directExecutor())
.ticker(fakeTicker::read));
cache.put(654, 2675);
fakeTicker.advance(10000, TimeUnit.MILLISECONDS);
cache.put(2456, 56);
cache.put(2, 15);
fakeTicker.advance(10001, TimeUnit.MILLISECONDS);
assertTrue(cache.asMap().containsKey(2));
assertTrue(cache.asMap().containsKey(2456));
assertFalse(cache.asMap().containsKey(654));
}
代码示例来源:origin: ben-manes/caffeine
public void testAsMapEntrySet() {
Cache<Integer, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder()
.expireAfterWrite(1000, TimeUnit.MILLISECONDS)
.executor(MoreExecutors.directExecutor())
.ticker(fakeTicker::read));
cache.put(10, 20);
fakeTicker.advance(500, TimeUnit.MILLISECONDS);
cache.put(20, 22);
cache.put(5, 10);
fakeTicker.advance(501, TimeUnit.MILLISECONDS);
int sum = 0;
for (Entry<Integer, Integer> current : cache.asMap().entrySet()) {
sum += current.getKey() + current.getValue();
}
assertEquals(57, sum);
}
代码示例来源:origin: ben-manes/caffeine
public void testExpireAfterAccess() {
final Cache<Integer, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder()
.expireAfterAccess(1000, TimeUnit.MILLISECONDS)
.executor(MoreExecutors.directExecutor())
.ticker(fakeTicker::read));
cache.put(0, 10);
cache.put(2, 30);
fakeTicker.advance(999, TimeUnit.MILLISECONDS);
assertEquals(Integer.valueOf(30), cache.getIfPresent(2));
fakeTicker.advance(1, TimeUnit.MILLISECONDS);
assertEquals(Integer.valueOf(30), cache.getIfPresent(2));
fakeTicker.advance(1000, TimeUnit.MILLISECONDS);
assertEquals(null, cache.getIfPresent(0));
}
代码示例来源:origin: ben-manes/caffeine
public void testExpireAfterWrite() {
final Cache<Integer, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder()
.expireAfterWrite(1000, TimeUnit.MILLISECONDS)
.executor(MoreExecutors.directExecutor())
.ticker(fakeTicker::read));
cache.put(10, 100);
cache.put(20, 200);
cache.put(4, 2);
fakeTicker.advance(999, TimeUnit.MILLISECONDS);
assertEquals(Integer.valueOf(100), cache.getIfPresent(10));
assertEquals(Integer.valueOf(200), cache.getIfPresent(20));
assertEquals(Integer.valueOf(2), cache.getIfPresent(4));
fakeTicker.advance(2, TimeUnit.MILLISECONDS);
assertEquals(null, cache.getIfPresent(10));
assertEquals(null, cache.getIfPresent(20));
assertEquals(null, cache.getIfPresent(4));
cache.put(10, 20);
assertEquals(Integer.valueOf(20), cache.getIfPresent(10));
fakeTicker.advance(1000, TimeUnit.MILLISECONDS);
assertEquals(null, cache.getIfPresent(10));
}
代码示例来源:origin: ben-manes/caffeine
public void testAsMap_containsValue() {
Cache<Integer, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder()
.expireAfterWrite(20000, TimeUnit.MILLISECONDS)
.executor(MoreExecutors.directExecutor())
.ticker(fakeTicker::read));
cache.put(654, 2675);
fakeTicker.advance(10000, TimeUnit.MILLISECONDS);
cache.put(2456, 56);
cache.put(2, 15);
fakeTicker.advance(10001, TimeUnit.MILLISECONDS);
assertTrue(cache.asMap().containsValue(15));
assertTrue(cache.asMap().containsValue(56));
assertFalse(cache.asMap().containsValue(2675));
}
代码示例来源:origin: ben-manes/caffeine
public void testExpiration_expireAfterWrite() {
FakeTicker ticker = new FakeTicker();
CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
WatchedCreatorLoader loader = new WatchedCreatorLoader();
LoadingCache<String, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder()
.expireAfterWrite(EXPIRING_TIME, MILLISECONDS)
.executor(MoreExecutors.directExecutor())
.removalListener(removalListener)
.ticker(ticker::read),
loader);
checkExpiration(cache, loader, ticker, removalListener);
}
代码示例来源:origin: ben-manes/caffeine
public void testExpiringGet_expireAfterWrite() {
FakeTicker ticker = new FakeTicker();
CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
WatchedCreatorLoader loader = new WatchedCreatorLoader();
LoadingCache<String, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder()
.expireAfterWrite(EXPIRING_TIME, MILLISECONDS)
.executor(MoreExecutors.directExecutor())
.removalListener(removalListener)
.ticker(ticker::read),
loader);
runExpirationTest(cache, loader, ticker, removalListener);
}
代码示例来源:origin: ben-manes/caffeine
public void testExpiration_expireAfterAccess() {
FakeTicker ticker = new FakeTicker();
CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
WatchedCreatorLoader loader = new WatchedCreatorLoader();
LoadingCache<String, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder()
.expireAfterAccess(EXPIRING_TIME, MILLISECONDS)
.executor(MoreExecutors.directExecutor())
.removalListener(removalListener)
.ticker(ticker::read),
loader);
checkExpiration(cache, loader, ticker, removalListener);
}
代码示例来源:origin: ben-manes/caffeine
public void testExpiringGet_expireAfterAccess() {
FakeTicker ticker = new FakeTicker();
CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
WatchedCreatorLoader loader = new WatchedCreatorLoader();
LoadingCache<String, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder()
.expireAfterAccess(EXPIRING_TIME, MILLISECONDS)
.executor(MoreExecutors.directExecutor())
.removalListener(removalListener)
.ticker(ticker::read),
loader);
runExpirationTest(cache, loader, ticker, removalListener);
}
代码示例来源:origin: ben-manes/caffeine
public void testRemovalScheduler_expireAfterWrite() {
FakeTicker ticker = new FakeTicker();
CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
WatchedCreatorLoader loader = new WatchedCreatorLoader();
LoadingCache<String, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder()
.expireAfterWrite(EXPIRING_TIME, MILLISECONDS)
.executor(MoreExecutors.directExecutor())
.removalListener(removalListener)
.ticker(ticker::read),
loader);
runRemovalScheduler(cache, removalListener, loader, ticker, KEY_PREFIX, EXPIRING_TIME);
}
代码示例来源:origin: ben-manes/caffeine
public void testRemovalScheduler_expireAfterAccess() {
FakeTicker ticker = new FakeTicker();
CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
WatchedCreatorLoader loader = new WatchedCreatorLoader();
LoadingCache<String, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder()
.expireAfterAccess(EXPIRING_TIME, MILLISECONDS)
.executor(MoreExecutors.directExecutor())
.removalListener(removalListener)
.ticker(ticker::read),
loader);
runRemovalScheduler(cache, removalListener, loader, ticker, KEY_PREFIX, EXPIRING_TIME);
}
代码示例来源:origin: ben-manes/caffeine
public void testRemovalScheduler_expireAfterBoth() {
FakeTicker ticker = new FakeTicker();
CountingRemovalListener<String, Integer> removalListener = countingRemovalListener();
WatchedCreatorLoader loader = new WatchedCreatorLoader();
LoadingCache<String, Integer> cache = CaffeinatedGuava.build(Caffeine.newBuilder()
.expireAfterAccess(EXPIRING_TIME, MILLISECONDS)
.expireAfterWrite(EXPIRING_TIME, MILLISECONDS)
.executor(MoreExecutors.directExecutor())
.removalListener(removalListener)
.ticker(ticker::read),
loader);
runRemovalScheduler(cache, removalListener, loader, ticker, KEY_PREFIX, EXPIRING_TIME);
}
内容来源于网络,如有侵权,请联系作者删除!