mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-10-28 04:29:07 +08:00
🎨 wx-java-open-spring-boot-starter 增加重试次数配置
This commit is contained in:
@ -139,6 +139,24 @@ public interface WxOpenConfigStorage {
|
||||
*/
|
||||
String getHttpProxyPassword();
|
||||
|
||||
/**
|
||||
* http 请求重试间隔
|
||||
* <pre>
|
||||
* {@link me.chanjar.weixin.mp.api.impl.BaseWxMpServiceImpl#setRetrySleepMillis(int)}
|
||||
* {@link cn.binarywang.wx.miniapp.api.impl.BaseWxMaServiceImpl#setRetrySleepMillis(int)}
|
||||
* </pre>
|
||||
*/
|
||||
int getRetrySleepMillis();
|
||||
|
||||
/**
|
||||
* http 请求最大重试次数
|
||||
* <pre>
|
||||
* {@link me.chanjar.weixin.mp.api.impl.BaseWxMpServiceImpl#setMaxRetryTimes(int)}
|
||||
* {@link cn.binarywang.wx.miniapp.api.impl.BaseWxMaServiceImpl#setMaxRetryTimes(int)}
|
||||
* </pre>
|
||||
*/
|
||||
int getMaxRetryTimes();
|
||||
|
||||
/**
|
||||
* Gets apache http client builder.
|
||||
*
|
||||
@ -210,6 +228,7 @@ public interface WxOpenConfigStorage {
|
||||
|
||||
/**
|
||||
* setAuthorizerRefreshToken(String appId, String authorizerRefreshToken) 方法重载方法
|
||||
*
|
||||
* @param appId the app id
|
||||
* @param authorizerRefreshToken the authorizer refresh token
|
||||
*/
|
||||
|
||||
@ -6,6 +6,7 @@ import com.google.gson.reflect.TypeToken;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import me.chanjar.weixin.common.api.WxConsts;
|
||||
import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
|
||||
import me.chanjar.weixin.common.error.WxError;
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
import me.chanjar.weixin.common.error.WxRuntimeException;
|
||||
@ -14,12 +15,24 @@ import me.chanjar.weixin.common.util.http.URIUtil;
|
||||
import me.chanjar.weixin.common.util.json.GsonParser;
|
||||
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
|
||||
import me.chanjar.weixin.mp.api.WxMpService;
|
||||
import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
|
||||
import me.chanjar.weixin.open.api.*;
|
||||
import me.chanjar.weixin.open.bean.*;
|
||||
import me.chanjar.weixin.open.api.WxOpenComponentService;
|
||||
import me.chanjar.weixin.open.api.WxOpenConfigStorage;
|
||||
import me.chanjar.weixin.open.api.WxOpenFastMaService;
|
||||
import me.chanjar.weixin.open.api.WxOpenMaService;
|
||||
import me.chanjar.weixin.open.api.WxOpenMpService;
|
||||
import me.chanjar.weixin.open.api.WxOpenService;
|
||||
import me.chanjar.weixin.open.bean.WxOpenAuthorizerAccessToken;
|
||||
import me.chanjar.weixin.open.bean.WxOpenComponentAccessToken;
|
||||
import me.chanjar.weixin.open.bean.WxOpenCreateResult;
|
||||
import me.chanjar.weixin.open.bean.WxOpenGetResult;
|
||||
import me.chanjar.weixin.open.bean.WxOpenMaCodeTemplate;
|
||||
import me.chanjar.weixin.open.bean.auth.WxOpenAuthorizationInfo;
|
||||
import me.chanjar.weixin.open.bean.message.WxOpenXmlMessage;
|
||||
import me.chanjar.weixin.open.bean.result.*;
|
||||
import me.chanjar.weixin.open.bean.result.WxOpenAuthorizerInfoResult;
|
||||
import me.chanjar.weixin.open.bean.result.WxOpenAuthorizerListResult;
|
||||
import me.chanjar.weixin.open.bean.result.WxOpenAuthorizerOptionResult;
|
||||
import me.chanjar.weixin.open.bean.result.WxOpenQueryAuthResult;
|
||||
import me.chanjar.weixin.open.bean.result.WxOpenResult;
|
||||
import me.chanjar.weixin.open.util.json.WxOpenGsonBuilder;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
@ -49,8 +62,11 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService {
|
||||
synchronized (WX_OPEN_MP_SERVICE_MAP) {
|
||||
wxMpService = WX_OPEN_MP_SERVICE_MAP.get(appId);
|
||||
if (wxMpService == null) {
|
||||
wxMpService = new WxOpenMpServiceImpl(this, appId, getWxOpenConfigStorage().getWxMpConfigStorage(appId));
|
||||
|
||||
WxOpenConfigStorage storage = this.getWxOpenConfigStorage();
|
||||
wxMpService = new WxOpenMpServiceImpl(this, appId, storage.getWxMpConfigStorage(appId));
|
||||
// 配置重试次数和重试间隔
|
||||
wxMpService.setMaxRetryTimes(storage.getMaxRetryTimes());
|
||||
wxMpService.setRetrySleepMillis(storage.getRetrySleepMillis());
|
||||
WX_OPEN_MP_SERVICE_MAP.put(appId, wxMpService);
|
||||
}
|
||||
}
|
||||
@ -65,7 +81,11 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService {
|
||||
synchronized (WX_OPEN_MA_SERVICE_MAP) {
|
||||
wxOpenMaService = WX_OPEN_MA_SERVICE_MAP.get(appId);
|
||||
if (wxOpenMaService == null) {
|
||||
wxOpenMaService = new WxOpenMaServiceImpl(this, appId, getWxOpenConfigStorage().getWxMaConfig(appId));
|
||||
WxOpenConfigStorage storage = this.getWxOpenConfigStorage();
|
||||
wxOpenMaService = new WxOpenMaServiceImpl(this, appId, storage.getWxMaConfig(appId));
|
||||
// 配置重试次数和重试间隔
|
||||
wxOpenMaService.setMaxRetryTimes(storage.getMaxRetryTimes());
|
||||
wxOpenMaService.setRetrySleepMillis(storage.getRetrySleepMillis());
|
||||
WX_OPEN_MA_SERVICE_MAP.put(appId, wxOpenMaService);
|
||||
}
|
||||
}
|
||||
@ -80,7 +100,11 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService {
|
||||
synchronized (WX_OPEN_FAST_MA_SERVICE_MAP) {
|
||||
fastMaService = WX_OPEN_FAST_MA_SERVICE_MAP.get(appId);
|
||||
if (fastMaService == null) {
|
||||
fastMaService = new WxOpenFastMaServiceImpl(this, appId, getWxOpenConfigStorage().getWxMaConfig(appId));
|
||||
WxOpenConfigStorage storage = this.getWxOpenConfigStorage();
|
||||
fastMaService = new WxOpenFastMaServiceImpl(this, appId, storage.getWxMaConfig(appId));
|
||||
// 配置重试次数和重试间隔
|
||||
fastMaService.setMaxRetryTimes(storage.getMaxRetryTimes());
|
||||
fastMaService.setRetrySleepMillis(storage.getRetrySleepMillis());
|
||||
WX_OPEN_FAST_MA_SERVICE_MAP.put(appId, fastMaService);
|
||||
}
|
||||
}
|
||||
@ -103,7 +127,7 @@ public class WxOpenComponentServiceImpl implements WxOpenComponentService {
|
||||
return SHA1.gen(getWxOpenConfigStorage().getComponentToken(), timestamp, nonce)
|
||||
.equals(signature);
|
||||
} catch (Exception e) {
|
||||
this.log.error("Checking signature failed, and the reason is :" + e.getMessage());
|
||||
log.error("Checking signature failed, and the reason is :" + e.getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,12 +3,11 @@ package me.chanjar.weixin.open.api.impl;
|
||||
|
||||
import cn.binarywang.wx.miniapp.config.WxMaConfig;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import me.chanjar.weixin.common.bean.WxAccessToken;
|
||||
import me.chanjar.weixin.common.enums.TicketType;
|
||||
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
|
||||
import me.chanjar.weixin.mp.config.WxMpHostConfig;
|
||||
import me.chanjar.weixin.mp.config.WxMpConfigStorage;
|
||||
import me.chanjar.weixin.mp.config.WxMpHostConfig;
|
||||
import me.chanjar.weixin.open.api.WxOpenConfigStorage;
|
||||
import me.chanjar.weixin.open.bean.WxOpenAuthorizerAccessToken;
|
||||
import me.chanjar.weixin.open.bean.WxOpenComponentAccessToken;
|
||||
@ -39,6 +38,22 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage {
|
||||
private int httpProxyPort;
|
||||
private String httpProxyUsername;
|
||||
private String httpProxyPassword;
|
||||
/**
|
||||
* http 请求重试间隔
|
||||
* <pre>
|
||||
* {@link me.chanjar.weixin.mp.api.impl.BaseWxMpServiceImpl#setRetrySleepMillis(int)}
|
||||
* {@link cn.binarywang.wx.miniapp.api.impl.BaseWxMaServiceImpl#setRetrySleepMillis(int)}
|
||||
* </pre>
|
||||
*/
|
||||
private int retrySleepMillis = 1000;
|
||||
/**
|
||||
* http 请求最大重试次数
|
||||
* <pre>
|
||||
* {@link me.chanjar.weixin.mp.api.impl.BaseWxMpServiceImpl#setMaxRetryTimes(int)}
|
||||
* {@link cn.binarywang.wx.miniapp.api.impl.BaseWxMaServiceImpl#setMaxRetryTimes(int)}
|
||||
* </pre>
|
||||
*/
|
||||
private int maxRetryTimes = 5;
|
||||
private ApacheHttpClientBuilder apacheHttpClientBuilder;
|
||||
|
||||
private Map<String, Token> authorizerRefreshTokens = new ConcurrentHashMap<>();
|
||||
@ -511,6 +526,16 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage {
|
||||
return this.wxOpenConfigStorage.getHttpProxyPassword();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRetrySleepMillis() {
|
||||
return this.wxOpenConfigStorage.getRetrySleepMillis();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxRetryTimes() {
|
||||
return this.wxOpenConfigStorage.getMaxRetryTimes();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return WxOpenGsonBuilder.create().toJson(this);
|
||||
|
||||
Reference in New Issue
Block a user