Skip to content

Commit b7ae5e3

Browse files
authoredSep 9, 2021
Merge pull request #25 from youngfreeFJS/feature/exec-timeout
feature: LyrebirdClient 支持自定义请求超时时间
2 parents 590043d + 679188f commit b7ae5e3

File tree

3 files changed

+44
-5
lines changed

3 files changed

+44
-5
lines changed
 

‎pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
<groupId>com.github.meituan-dianping.lyrebird.sdk</groupId>
77
<artifactId>lyrebird-java-client</artifactId>
8-
<version>1.1.5</version>
8+
<version>1.1.6</version>
99

1010
<name>lyrebird-java-client</name>
1111
<url>https://github.com/Meituan-Dianping/lyrebird-java-client</url>

‎src/main/java/com/meituan/lyrebird/Lyrebird.java

+20-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
import com.meituan.lyrebird.client.api.*;
1212
import java.net.URISyntaxException;
13+
import java.util.concurrent.TimeUnit;
1314

1415
public class Lyrebird {
1516
private LyrebirdClient client;
@@ -20,7 +21,25 @@ public Lyrebird() {
2021
}
2122

2223
public Lyrebird(String lyrebirdRemoteAddress) {
23-
client = new LyrebirdClient(lyrebirdRemoteAddress);
24+
this(lyrebirdRemoteAddress,TimeUnit.SECONDS,0,10,10,0);
25+
}
26+
27+
public Lyrebird(
28+
String lyrebirdRemoteAddress,
29+
TimeUnit timeUnit,
30+
long callTimeout,
31+
long connectTimeout,
32+
long readTimeout,
33+
long writeTimeout
34+
) {
35+
client = new LyrebirdClient(
36+
lyrebirdRemoteAddress,
37+
timeUnit,
38+
callTimeout,
39+
connectTimeout,
40+
readTimeout,
41+
writeTimeout
42+
);
2443
}
2544

2645
/**

‎src/main/java/com/meituan/lyrebird/client/LyrebirdClient.java

+23-3
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,44 @@
1010
import io.socket.client.IO;
1111
import io.socket.client.Socket;
1212
import java.net.URISyntaxException;
13+
import okhttp3.OkHttpClient;
1314
import retrofit2.Retrofit;
1415
import retrofit2.converter.jackson.JacksonConverterFactory;
1516

1617
import java.io.IOException;
1718
import java.lang.reflect.Method;
19+
import java.util.concurrent.TimeUnit;
1820

1921
public class LyrebirdClient {
2022
private LyrebirdService lyrebirdService;
2123
private Socket socket;
2224

23-
public LyrebirdClient(String lyrebirdRemoteAddress) {
25+
public LyrebirdClient(
26+
String lyrebirdRemoteAddress,
27+
TimeUnit timeUnit,
28+
long callTimeout,
29+
long connectTimeout,
30+
long readTimeout,
31+
long writeTimeout
32+
) {
2433
ObjectMapper mapper = new ObjectMapper();
2534
mapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT);
26-
Retrofit retrofit = new Retrofit
35+
36+
OkHttpClient.Builder httpClient = new OkHttpClient.Builder()
37+
.callTimeout(callTimeout, timeUnit)
38+
.connectTimeout(connectTimeout,timeUnit)
39+
.readTimeout(readTimeout,timeUnit)
40+
.writeTimeout(writeTimeout,timeUnit);
41+
42+
Retrofit.Builder builder = new Retrofit
2743
.Builder()
2844
.baseUrl(lyrebirdRemoteAddress)
2945
.addConverterFactory(JacksonConverterFactory.create(mapper))
30-
.build();
46+
.client(httpClient.build());
47+
48+
Retrofit retrofit = builder.build();
49+
50+
// create service
3151
lyrebirdService = retrofit.create(LyrebirdService.class);
3252
}
3353

0 commit comments

Comments
 (0)