我在使用Guava缓存时得到的结果并不是我真正理解的.
我正在实现一个我想要异步刷新的单个缓存.
我每秒都会点击缓存,然后将refreshAfterWrite设置为20秒.我的加载/重载功能需要5秒钟.
如果我在加载/重载方法的开头打印出当前时间 - 我会期望这样的结果:
加载呼叫在00:00:00
开始,
重新加载呼叫在00:00:25 开始,重新加载呼叫在00:00:50开始
因此,负载将花费5秒钟,然后下一次写入将在此后20秒触发(5 + 20 = 25).该写入将发生在50秒(25 + 5 + 20 = 50)秒之后......等等
相反,我得到:
加载呼叫在00:00:00开始,
重新加载呼叫在00:00:25开始,
重新加载呼叫在00:00:30开始
这表明第二次重新加载是在第一次重新加载完成后立即发生的.
我认为写入将在未来处理后发生,因此下一次重新加载将在此之后安排20秒?
我是否发现了一个错误,或者我对refreshAfterWrite的工作方式有一个基本的误解?
示例代码如下:
private static SimpleDateFormat format = new SimpleDateFormat("hh:mm:ss");
public static void main(String[] args) throws ExecutionException, InterruptedException {
final ExecutorService executor = Executors.newFixedThreadPool(3);
final LoadingCache<String, Long> cache = CacheBuilder.newBuilder().maximumSize(1) //
.refreshAfterWrite(20, TimeUnit.SECONDS)//
.build(new CacheLoader<String, Long>() {//
public Long load(String key) {
return getLongRunningProcess("load", key);
}
public ListenableFuture<Long> reload(final String key, Long prevGraph) { …
Run Code Online (Sandbox Code Playgroud) 在组装期间,我希望将发布目录中的所有文件包含到程序集的根目录中.如果我执行以下操作:
<fileSet>
<directory>${basedir}/</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>src/main/resources/release/**</include>
</includes>
</fileSet>
Run Code Online (Sandbox Code Playgroud)
然后将所有文件添加到我的发行版中名为src/main/resources/release /的文件夹中.在包含字段时,有没有办法不包含文件夹路径?
我正在使用2.3版本的程序集插件.如果用汇编插件没有办法做到这一点有没有办法用其他插件做到这一点?(最好不要求助于蚂蚁插件).
message: "Invalid GeoJSON"
尝试将多边形添加到 Mapbox api 上的静态地图时, 我不断收到错误。
在下面的地图上:
我的 LineString 示例用于勾画我想要绘制的多边形的边框:
geojson({"type":"Feature","properties":{},"geometry":{"type":"LineString","coordinates":[[-120.8492,39.4916],[-120.8474,39.4896],[-120.8510,39.4864],[-120.8492,39.4916]]}})
Run Code Online (Sandbox Code Playgroud)
如果尝试使用以下 geojson 对象将其转换为多边形:
geojson({"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[-120.8492,39.4916],[-120.8474,39.4896],[-120.8510,39.4864],[-120.8492,39.4916]]}})
Run Code Online (Sandbox Code Playgroud)
它爆炸了:
有人能看到我做错了什么吗?我在查找使用静态 api 绘制多边形的任何示例时遇到问题,但静态 api 文档说这是可能的。
谢谢。