mirror of
https://github.com/lionsoul2014/ip2region.git
synced 2025-12-08 19:25:22 +00:00
auto close the handle after buffer loaded
This commit is contained in:
parent
c15be8c7b5
commit
680624db65
@ -7,7 +7,7 @@
|
||||
<dependency>
|
||||
<groupId>org.lionsoul</groupId>
|
||||
<artifactId>ip2region</artifactId>
|
||||
<version>2.6.4</version>
|
||||
<version>2.6.5</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
@ -41,7 +41,10 @@ public class SearcherTest {
|
||||
System.out.printf("failed to search(%s): %s\n", ip, e);
|
||||
}
|
||||
|
||||
// 3、备注:并发使用,每个线程需要创建一个独立的 searcher 对象单独使用。
|
||||
// 3、关闭资源
|
||||
searcher.close();
|
||||
|
||||
// 备注:并发使用,每个线程需要创建一个独立的 searcher 对象单独使用。
|
||||
}
|
||||
}
|
||||
```
|
||||
@ -87,6 +90,9 @@ public class SearcherTest {
|
||||
System.out.printf("failed to search(%s): %s\n", ip, e);
|
||||
}
|
||||
|
||||
// 4、关闭资源
|
||||
searcher.close();
|
||||
|
||||
// 备注:每个线程需要单独创建一个独立的 Searcher 对象,但是都共享全局的制度 vIndex 缓存。
|
||||
}
|
||||
}
|
||||
@ -133,6 +139,9 @@ public class SearcherTest {
|
||||
System.out.printf("failed to search(%s): %s\n", ip, e);
|
||||
}
|
||||
|
||||
// 4、关闭资源 - 该 searcher 对象可以安全用于并发,等整个服务关闭的时候再关闭 searcher
|
||||
// searcher.close();
|
||||
|
||||
// 备注:并发使用,用整个 xdb 数据缓存创建的查询对象可以安全的用于并发,也就是你可以把这个 searcher 对象做成全局对象去跨线程访问。
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
|
||||
<groupId>org.lionsoul</groupId>
|
||||
<artifactId>ip2region</artifactId>
|
||||
<version>2.6.4</version>
|
||||
<version>2.6.5</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>ip2region</name>
|
||||
|
||||
@ -167,8 +167,10 @@ public class Searcher {
|
||||
}
|
||||
|
||||
public static Header loadHeaderFromFile(String dbPath) throws IOException {
|
||||
RandomAccessFile handle = new RandomAccessFile(dbPath, "r");
|
||||
return loadHeader(handle);
|
||||
final RandomAccessFile handle = new RandomAccessFile(dbPath, "r");
|
||||
final Header header = loadHeader(handle);
|
||||
handle.close();
|
||||
return header;
|
||||
}
|
||||
|
||||
public static byte[] loadVectorIndex(RandomAccessFile handle) throws IOException {
|
||||
@ -184,8 +186,10 @@ public class Searcher {
|
||||
}
|
||||
|
||||
public static byte[] loadVectorIndexFromFile(String dbPath) throws IOException {
|
||||
RandomAccessFile handle = new RandomAccessFile(dbPath, "r");
|
||||
return loadVectorIndex(handle);
|
||||
final RandomAccessFile handle = new RandomAccessFile(dbPath, "r");
|
||||
final byte[] vIndex = loadVectorIndex(handle);
|
||||
handle.close();
|
||||
return vIndex;
|
||||
}
|
||||
|
||||
public static byte[] loadContent(RandomAccessFile handle) throws IOException {
|
||||
@ -200,8 +204,10 @@ public class Searcher {
|
||||
}
|
||||
|
||||
public static byte[] loadContentFromFile(String dbPath) throws IOException {
|
||||
RandomAccessFile handle = new RandomAccessFile(dbPath, "r");
|
||||
return loadContent(handle);
|
||||
final RandomAccessFile handle = new RandomAccessFile(dbPath, "r");
|
||||
final byte[] content = loadContent(handle);
|
||||
handle.close();
|
||||
return content;
|
||||
}
|
||||
|
||||
// --- End cache load util function
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user