mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-10-28 04:29:07 +08:00
🎨 starter模块添加 HttpClient 超时配置
This commit is contained in:
@ -2,6 +2,8 @@ package com.binarywang.spring.starter.wxjava.miniapp.config.storage;
|
|||||||
|
|
||||||
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
|
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
|
||||||
import com.binarywang.spring.starter.wxjava.miniapp.properties.WxMaProperties;
|
import com.binarywang.spring.starter.wxjava.miniapp.properties.WxMaProperties;
|
||||||
|
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
|
||||||
|
import me.chanjar.weixin.common.util.http.apache.DefaultApacheHttpClientBuilder;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10,6 +12,7 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
public abstract class AbstractWxMaConfigStorageConfiguration {
|
public abstract class AbstractWxMaConfigStorageConfiguration {
|
||||||
|
|
||||||
protected WxMaDefaultConfigImpl config(WxMaDefaultConfigImpl config, WxMaProperties properties) {
|
protected WxMaDefaultConfigImpl config(WxMaDefaultConfigImpl config, WxMaProperties properties) {
|
||||||
|
WxMaProperties.ConfigStorage storage = properties.getConfigStorage();
|
||||||
config.setAppid(StringUtils.trimToNull(properties.getAppid()));
|
config.setAppid(StringUtils.trimToNull(properties.getAppid()));
|
||||||
config.setSecret(StringUtils.trimToNull(properties.getSecret()));
|
config.setSecret(StringUtils.trimToNull(properties.getSecret()));
|
||||||
config.setToken(StringUtils.trimToNull(properties.getToken()));
|
config.setToken(StringUtils.trimToNull(properties.getToken()));
|
||||||
@ -25,6 +28,19 @@ public abstract class AbstractWxMaConfigStorageConfiguration {
|
|||||||
config.setHttpProxyPort(configStorageProperties.getHttpProxyPort());
|
config.setHttpProxyPort(configStorageProperties.getHttpProxyPort());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 设置自定义的HttpClient超时配置
|
||||||
|
ApacheHttpClientBuilder clientBuilder = config.getApacheHttpClientBuilder();
|
||||||
|
if (clientBuilder == null) {
|
||||||
|
clientBuilder = DefaultApacheHttpClientBuilder.get();
|
||||||
|
}
|
||||||
|
if (clientBuilder instanceof DefaultApacheHttpClientBuilder) {
|
||||||
|
DefaultApacheHttpClientBuilder defaultBuilder = (DefaultApacheHttpClientBuilder) clientBuilder;
|
||||||
|
defaultBuilder.setConnectionTimeout(storage.getConnectionTimeout());
|
||||||
|
defaultBuilder.setSoTimeout(storage.getSoTimeout());
|
||||||
|
defaultBuilder.setConnectionRequestTimeout(storage.getConnectionRequestTimeout());
|
||||||
|
config.setApacheHttpClientBuilder(defaultBuilder);
|
||||||
|
}
|
||||||
|
|
||||||
int maxRetryTimes = configStorageProperties.getMaxRetryTimes();
|
int maxRetryTimes = configStorageProperties.getMaxRetryTimes();
|
||||||
if (configStorageProperties.getMaxRetryTimes() < 0) {
|
if (configStorageProperties.getMaxRetryTimes() < 0) {
|
||||||
maxRetryTimes = 0;
|
maxRetryTimes = 0;
|
||||||
|
|||||||
@ -112,6 +112,21 @@ public class WxMaProperties {
|
|||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
private int maxRetryTimes = 5;
|
private int maxRetryTimes = 5;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 连接超时时间,单位毫秒
|
||||||
|
*/
|
||||||
|
private int connectionTimeout = 5000;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 读数据超时时间,即socketTimeout,单位毫秒
|
||||||
|
*/
|
||||||
|
private int soTimeout = 5000;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 从连接池获取链接的超时时间,单位毫秒
|
||||||
|
*/
|
||||||
|
private int connectionRequestTimeout = 5000;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,6 +9,8 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import me.chanjar.weixin.common.redis.JedisWxRedisOps;
|
import me.chanjar.weixin.common.redis.JedisWxRedisOps;
|
||||||
import me.chanjar.weixin.common.redis.RedisTemplateWxRedisOps;
|
import me.chanjar.weixin.common.redis.RedisTemplateWxRedisOps;
|
||||||
import me.chanjar.weixin.common.redis.WxRedisOps;
|
import me.chanjar.weixin.common.redis.WxRedisOps;
|
||||||
|
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
|
||||||
|
import me.chanjar.weixin.common.util.http.apache.DefaultApacheHttpClientBuilder;
|
||||||
import me.chanjar.weixin.mp.config.WxMpConfigStorage;
|
import me.chanjar.weixin.mp.config.WxMpConfigStorage;
|
||||||
import me.chanjar.weixin.mp.config.WxMpHostConfig;
|
import me.chanjar.weixin.mp.config.WxMpHostConfig;
|
||||||
import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl;
|
import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl;
|
||||||
@ -122,6 +124,19 @@ public class WxMpStorageAutoConfiguration {
|
|||||||
config.setSecret(properties.getSecret());
|
config.setSecret(properties.getSecret());
|
||||||
config.setToken(properties.getToken());
|
config.setToken(properties.getToken());
|
||||||
config.setAesKey(properties.getAesKey());
|
config.setAesKey(properties.getAesKey());
|
||||||
|
WxMpProperties.ConfigStorage storage = properties.getConfigStorage();
|
||||||
|
// 设置自定义的HttpClient超时配置
|
||||||
|
ApacheHttpClientBuilder clientBuilder = config.getApacheHttpClientBuilder();
|
||||||
|
if (clientBuilder == null) {
|
||||||
|
clientBuilder = DefaultApacheHttpClientBuilder.get();
|
||||||
|
}
|
||||||
|
if (clientBuilder instanceof DefaultApacheHttpClientBuilder) {
|
||||||
|
DefaultApacheHttpClientBuilder defaultBuilder = (DefaultApacheHttpClientBuilder) clientBuilder;
|
||||||
|
defaultBuilder.setConnectionTimeout(storage.getConnectionTimeout());
|
||||||
|
defaultBuilder.setSoTimeout(storage.getSoTimeout());
|
||||||
|
defaultBuilder.setConnectionRequestTimeout(storage.getConnectionRequestTimeout());
|
||||||
|
config.setApacheHttpClientBuilder(defaultBuilder);
|
||||||
|
}
|
||||||
config.setUseStableAccessToken(wxMpProperties.isUseStableAccessToken());
|
config.setUseStableAccessToken(wxMpProperties.isUseStableAccessToken());
|
||||||
config.setHttpProxyHost(configStorageProperties.getHttpProxyHost());
|
config.setHttpProxyHost(configStorageProperties.getHttpProxyHost());
|
||||||
config.setHttpProxyUsername(configStorageProperties.getHttpProxyUsername());
|
config.setHttpProxyUsername(configStorageProperties.getHttpProxyUsername());
|
||||||
|
|||||||
@ -102,6 +102,21 @@ public class WxMpProperties {
|
|||||||
*/
|
*/
|
||||||
private String httpProxyPassword;
|
private String httpProxyPassword;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 连接超时时间,单位毫秒
|
||||||
|
*/
|
||||||
|
private int connectionTimeout = 5000;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 读数据超时时间,即socketTimeout,单位毫秒
|
||||||
|
*/
|
||||||
|
private int soTimeout = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 从连接池获取链接的超时时间,单位毫秒
|
||||||
|
*/
|
||||||
|
private int connectionRequestTimeout = 5000;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
package com.binarywang.spring.starter.wxjava.open.config.storage;
|
package com.binarywang.spring.starter.wxjava.open.config.storage;
|
||||||
|
|
||||||
import com.binarywang.spring.starter.wxjava.open.properties.WxOpenProperties;
|
import com.binarywang.spring.starter.wxjava.open.properties.WxOpenProperties;
|
||||||
|
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
|
||||||
|
import me.chanjar.weixin.common.util.http.apache.DefaultApacheHttpClientBuilder;
|
||||||
import me.chanjar.weixin.open.api.impl.WxOpenInMemoryConfigStorage;
|
import me.chanjar.weixin.open.api.impl.WxOpenInMemoryConfigStorage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -28,6 +30,20 @@ public abstract class AbstractWxOpenConfigStorageConfiguration {
|
|||||||
}
|
}
|
||||||
config.setRetrySleepMillis(retrySleepMillis);
|
config.setRetrySleepMillis(retrySleepMillis);
|
||||||
config.setMaxRetryTimes(maxRetryTimes);
|
config.setMaxRetryTimes(maxRetryTimes);
|
||||||
|
|
||||||
|
// 设置自定义的HttpClient超时配置
|
||||||
|
ApacheHttpClientBuilder clientBuilder = config.getApacheHttpClientBuilder();
|
||||||
|
if (clientBuilder == null) {
|
||||||
|
clientBuilder = DefaultApacheHttpClientBuilder.get();
|
||||||
|
}
|
||||||
|
if (clientBuilder instanceof DefaultApacheHttpClientBuilder) {
|
||||||
|
DefaultApacheHttpClientBuilder defaultBuilder = (DefaultApacheHttpClientBuilder) clientBuilder;
|
||||||
|
defaultBuilder.setConnectionTimeout(storage.getConnectionTimeout());
|
||||||
|
defaultBuilder.setSoTimeout(storage.getSoTimeout());
|
||||||
|
defaultBuilder.setConnectionRequestTimeout(storage.getConnectionRequestTimeout());
|
||||||
|
config.setApacheHttpClientBuilder(defaultBuilder);
|
||||||
|
}
|
||||||
|
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user