Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 42aede7

Browse files
βœ… Adding tests.guava cache test
1 parent 9499cda commit 42aede7

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
package com.crossoverjie.guava;
2+
3+
import com.google.common.cache.CacheBuilder;
4+
import com.google.common.cache.CacheLoader;
5+
import com.google.common.cache.LoadingCache;
6+
import org.slf4j.Logger;
7+
import org.slf4j.LoggerFactory;
8+
9+
import java.util.concurrent.ExecutionException;
10+
import java.util.concurrent.LinkedBlockingQueue;
11+
import java.util.concurrent.TimeUnit;
12+
import java.util.concurrent.atomic.AtomicLong;
13+
14+
/**
15+
* Function:
16+
*
17+
* @author crossoverJie
18+
* Date: 2018εΉ΄6月12ζ—₯ 15:33
19+
* @since JDK 1.8
20+
*/
21+
public class CacheLoaderTest {
22+
private final static Logger LOGGER = LoggerFactory.getLogger(CacheLoaderTest.class);
23+
private LoadingCache<Long, AtomicLong> loadingCache ;
24+
private final static Long KEY = 1L;
25+
26+
27+
private final static LinkedBlockingQueue<Integer> QUEUE = new LinkedBlockingQueue<>(1000);
28+
29+
30+
private void init() throws InterruptedException {
31+
loadingCache = CacheBuilder.newBuilder()
32+
.expireAfterWrite(2, TimeUnit.SECONDS)
33+
.build(new CacheLoader<Long, AtomicLong>() {
34+
@Override
35+
public AtomicLong load(Long key) throws Exception {
36+
return new AtomicLong(0L);
37+
}
38+
});
39+
40+
41+
for (int i = 0; i < 5; i++) {
42+
QUEUE.put(i);
43+
}
44+
}
45+
46+
private void checkAlert() {
47+
try {
48+
49+
50+
TimeUnit.SECONDS.sleep(5);
51+
52+
LOGGER.info("ε½“ε‰ηΌ“ε­˜ε€Ό={}", loadingCache.get(KEY));
53+
loadingCache.get(KEY).incrementAndGet();
54+
55+
} catch (ExecutionException |InterruptedException e ) {
56+
LOGGER.error("Exception", e);
57+
}
58+
}
59+
public static void main(String[] args) throws InterruptedException {
60+
CacheLoaderTest cacheLoaderTest = new CacheLoaderTest() ;
61+
cacheLoaderTest.init();
62+
63+
64+
65+
while (true) {
66+
67+
try {
68+
Integer integer = QUEUE.poll(200, TimeUnit.MILLISECONDS);
69+
if (null == integer) {
70+
break;
71+
}
72+
//TimeUnit.SECONDS.sleep(5);
73+
cacheLoaderTest.checkAlert();
74+
LOGGER.info("job running times={}", integer);
75+
} catch (InterruptedException e) {
76+
e.printStackTrace();
77+
}
78+
}
79+
}
80+
81+
82+
}

0 commit comments

Comments
(0)

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /