1
0
mirror of synced 2025-12-22 09:58:07 +08:00
This commit is contained in:
Daniel Qian
2015-01-21 19:02:47 +08:00
parent 4accbe6ec2
commit 7184711301
8 changed files with 54 additions and 44 deletions

View File

@@ -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;
}

View File

@@ -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;
}