refactor
This commit is contained in:
@@ -37,11 +37,11 @@ public class WxCpInMemoryConfigStorage implements WxCpConfigStorage {
|
||||
this.expiresTime = 0;
|
||||
}
|
||||
|
||||
public void updateAccessToken(WxAccessToken accessToken) {
|
||||
public synchronized void updateAccessToken(WxAccessToken accessToken) {
|
||||
updateAccessToken(accessToken.getAccessToken(), accessToken.getExpiresIn());
|
||||
}
|
||||
|
||||
public void updateAccessToken(String accessToken, int expiresInSeconds) {
|
||||
public synchronized void updateAccessToken(String accessToken, int expiresInSeconds) {
|
||||
this.accessToken = accessToken;
|
||||
this.expiresTime = System.currentTimeMillis() + (expiresInSeconds - 200) * 1000l;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package me.chanjar.weixin.cp.api;
|
||||
|
||||
import me.chanjar.weixin.common.util.WxMsgIdDuplicateChecker;
|
||||
import me.chanjar.weixin.common.util.WxMsgIdMemoryDuplicateChecker;
|
||||
import me.chanjar.weixin.common.util.WxMessageDuplicateChecker;
|
||||
import me.chanjar.weixin.common.util.WxMessageInMemoryDuplicateChecker;
|
||||
import me.chanjar.weixin.cp.bean.WxCpXmlMessage;
|
||||
import me.chanjar.weixin.cp.bean.WxCpXmlOutMessage;
|
||||
|
||||
@@ -43,7 +43,7 @@ import java.util.regex.Pattern;
|
||||
*/
|
||||
public class WxCpMessageRouter {
|
||||
|
||||
private static final int DEFAULT_THREAD_POOL_SIZE = 20;
|
||||
private static final int DEFAULT_THREAD_POOL_SIZE = 100;
|
||||
|
||||
private final List<Rule> rules = new ArrayList<Rule>();
|
||||
|
||||
@@ -51,18 +51,12 @@ public class WxCpMessageRouter {
|
||||
|
||||
private ExecutorService executorService;
|
||||
|
||||
private WxMsgIdDuplicateChecker wxMsgIdDuplicateChecker;
|
||||
private WxMessageDuplicateChecker wxMessageDuplicateChecker;
|
||||
|
||||
public WxCpMessageRouter(WxCpService wxCpService) {
|
||||
this.wxCpService = wxCpService;
|
||||
this.executorService = Executors.newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE);
|
||||
this.wxMsgIdDuplicateChecker = new WxMsgIdMemoryDuplicateChecker();
|
||||
}
|
||||
|
||||
public WxCpMessageRouter(WxCpService wxMpService, int threadPoolSize) {
|
||||
this.wxCpService = wxMpService;
|
||||
this.executorService = Executors.newFixedThreadPool(threadPoolSize);
|
||||
this.wxMsgIdDuplicateChecker = new WxMsgIdMemoryDuplicateChecker();
|
||||
this.wxMessageDuplicateChecker = new WxMessageInMemoryDuplicateChecker();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -75,10 +69,10 @@ public class WxCpMessageRouter {
|
||||
|
||||
/**
|
||||
* 设置自定义的WxMsgIdDuplicateChecker
|
||||
* @param wxMsgIdDuplicateChecker
|
||||
* @param wxMessageDuplicateChecker
|
||||
*/
|
||||
public void setWxMsgIdDuplicateChecker(WxMsgIdDuplicateChecker wxMsgIdDuplicateChecker) {
|
||||
this.wxMsgIdDuplicateChecker = wxMsgIdDuplicateChecker;
|
||||
public void setWxMessageDuplicateChecker(WxMessageDuplicateChecker wxMessageDuplicateChecker) {
|
||||
this.wxMessageDuplicateChecker = wxMessageDuplicateChecker;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -94,7 +88,7 @@ public class WxCpMessageRouter {
|
||||
* @param wxMessage
|
||||
*/
|
||||
public WxCpXmlOutMessage route(final WxCpXmlMessage wxMessage) {
|
||||
if (wxMsgIdDuplicateChecker.isDuplicate(wxMessage.getMsgId())) {
|
||||
if (wxMessageDuplicateChecker.isDuplicate(wxMessage.getMsgId())) {
|
||||
// 如果是重复消息,那么就不做处理
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user