@@ -9,7 +9,7 @@ import java.util.concurrent.ConcurrentHashMap; | |||||
* 将每个消息id保存在内存里,每隔5秒清理已经过期的消息id,每个消息id的过期时间是15秒 | * 将每个消息id保存在内存里,每隔5秒清理已经过期的消息id,每个消息id的过期时间是15秒 | ||||
* </pre> | * </pre> | ||||
*/ | */ | ||||
public class WxMsgIdInMemoryDuplicateChecker implements WxMsgIdDuplicateChecker { | |||||
public class WxMsgIdMemoryDuplicateChecker implements WxMsgIdDuplicateChecker { | |||||
/** | /** | ||||
* 一个消息ID在内存的过期时间:15秒 | * 一个消息ID在内存的过期时间:15秒 | ||||
@@ -30,7 +30,7 @@ public class WxMsgIdInMemoryDuplicateChecker implements WxMsgIdDuplicateChecker | |||||
* 每隔多少周期检查消息ID是否过期:5秒 | * 每隔多少周期检查消息ID是否过期:5秒 | ||||
* </pre> | * </pre> | ||||
*/ | */ | ||||
public WxMsgIdInMemoryDuplicateChecker() { | |||||
public WxMsgIdMemoryDuplicateChecker() { | |||||
this.timeToLive = 15 * 1000l; | this.timeToLive = 15 * 1000l; | ||||
this.clearPeriod = 5 * 1000l; | this.clearPeriod = 5 * 1000l; | ||||
this.start(); | this.start(); | ||||
@@ -41,7 +41,7 @@ public class WxMsgIdInMemoryDuplicateChecker implements WxMsgIdDuplicateChecker | |||||
* @param timeToLive 一个消息ID在内存的过期时间:毫秒 | * @param timeToLive 一个消息ID在内存的过期时间:毫秒 | ||||
* @param clearPeriod 每隔多少周期检查消息ID是否过期:毫秒 | * @param clearPeriod 每隔多少周期检查消息ID是否过期:毫秒 | ||||
*/ | */ | ||||
public WxMsgIdInMemoryDuplicateChecker(Long timeToLive, Long clearPeriod) { | |||||
public WxMsgIdMemoryDuplicateChecker(Long timeToLive, Long clearPeriod) { | |||||
this.timeToLive = timeToLive; | this.timeToLive = timeToLive; | ||||
this.clearPeriod = clearPeriod; | this.clearPeriod = clearPeriod; | ||||
this.start(); | this.start(); |
@@ -3,15 +3,12 @@ package me.chanjar.weixin.common.util; | |||||
import org.testng.Assert; | import org.testng.Assert; | ||||
import org.testng.annotations.Test; | import org.testng.annotations.Test; | ||||
/** | |||||
* Created by qianjia on 15/1/20. | |||||
*/ | |||||
@Test | @Test | ||||
public class WxMsgIdInMemoryDuplicateCheckerTest { | |||||
public class WxMsgIdMemoryDuplicateCheckerTest { | |||||
public void test() throws InterruptedException { | public void test() throws InterruptedException { | ||||
Long[] msgIds = new Long[] { 1l, 2l, 3l, 4l, 5l, 6l, 7l, 8l }; | Long[] msgIds = new Long[] { 1l, 2l, 3l, 4l, 5l, 6l, 7l, 8l }; | ||||
WxMsgIdInMemoryDuplicateChecker checker = new WxMsgIdInMemoryDuplicateChecker(2000l, 1000l); | |||||
WxMsgIdMemoryDuplicateChecker checker = new WxMsgIdMemoryDuplicateChecker(2000l, 1000l); | |||||
// 第一次检查 | // 第一次检查 | ||||
for (Long msgId : msgIds) { | for (Long msgId : msgIds) { |
@@ -1,13 +1,13 @@ | |||||
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > | <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > | ||||
<suite name="Weixin-java-tool-suite" verbose="1"> | <suite name="Weixin-java-tool-suite" verbose="1"> | ||||
<test name="Bean_Test"> | |||||
<classes> | |||||
<class name="me.chanjar.weixin.common.bean.WxAccessTokenTest" /> | |||||
<class name="me.chanjar.weixin.common.bean.WxErrorTest" /> | |||||
<class name="me.chanjar.weixin.common.bean.WxMenuTest" /> | |||||
<class name="me.chanjar.weixin.common.util.crypto.WxCryptUtilTest" /> | |||||
<class name="me.chanjar.weixin.common.util.WxMsgIdInMemoryDuplicateCheckerTest" /> | |||||
</classes> | |||||
</test> | |||||
<test name="Bean_Test"> | |||||
<classes> | |||||
<class name="me.chanjar.weixin.common.bean.WxAccessTokenTest"/> | |||||
<class name="me.chanjar.weixin.common.bean.WxErrorTest"/> | |||||
<class name="me.chanjar.weixin.common.bean.WxMenuTest"/> | |||||
<class name="me.chanjar.weixin.common.util.crypto.WxCryptUtilTest"/> | |||||
<class name="me.chanjar.weixin.common.util.WxMsgIdMemoryDuplicateCheckerTest"/> | |||||
</classes> | |||||
</test> | |||||
</suite> | </suite> |