Просмотр исходного кода

issue #66 微信消息去重功能

master
Daniel Qian 10 лет назад
Родитель
Сommit
d3c9679eec
3 измененных файлов: 14 добавлений и 17 удалений
  1. +3
    -3
      weixin-java-common/src/main/java/me/chanjar/weixin/common/util/WxMsgIdMemoryDuplicateChecker.java
  2. +2
    -5
      weixin-java-common/src/test/java/me/chanjar/weixin/common/util/WxMsgIdMemoryDuplicateCheckerTest.java
  3. +9
    -9
      weixin-java-common/src/test/resources/testng.xml

weixin-java-common/src/main/java/me/chanjar/weixin/common/util/WxMsgIdInMemoryDuplicateChecker.java → weixin-java-common/src/main/java/me/chanjar/weixin/common/util/WxMsgIdMemoryDuplicateChecker.java Просмотреть файл

@@ -9,7 +9,7 @@ import java.util.concurrent.ConcurrentHashMap;
* 将每个消息id保存在内存里,每隔5秒清理已经过期的消息id,每个消息id的过期时间是15秒
* </pre>
*/
public class WxMsgIdInMemoryDuplicateChecker implements WxMsgIdDuplicateChecker {
public class WxMsgIdMemoryDuplicateChecker implements WxMsgIdDuplicateChecker {

/**
* 一个消息ID在内存的过期时间:15秒
@@ -30,7 +30,7 @@ public class WxMsgIdInMemoryDuplicateChecker implements WxMsgIdDuplicateChecker
* 每隔多少周期检查消息ID是否过期:5秒
* </pre>
*/
public WxMsgIdInMemoryDuplicateChecker() {
public WxMsgIdMemoryDuplicateChecker() {
this.timeToLive = 15 * 1000l;
this.clearPeriod = 5 * 1000l;
this.start();
@@ -41,7 +41,7 @@ public class WxMsgIdInMemoryDuplicateChecker implements WxMsgIdDuplicateChecker
* @param timeToLive 一个消息ID在内存的过期时间:毫秒
* @param clearPeriod 每隔多少周期检查消息ID是否过期:毫秒
*/
public WxMsgIdInMemoryDuplicateChecker(Long timeToLive, Long clearPeriod) {
public WxMsgIdMemoryDuplicateChecker(Long timeToLive, Long clearPeriod) {
this.timeToLive = timeToLive;
this.clearPeriod = clearPeriod;
this.start();

weixin-java-common/src/test/java/me/chanjar/weixin/common/util/WxMsgIdInMemoryDuplicateCheckerTest.java → weixin-java-common/src/test/java/me/chanjar/weixin/common/util/WxMsgIdMemoryDuplicateCheckerTest.java Просмотреть файл

@@ -3,15 +3,12 @@ package me.chanjar.weixin.common.util;
import org.testng.Assert;
import org.testng.annotations.Test;

/**
* Created by qianjia on 15/1/20.
*/
@Test
public class WxMsgIdInMemoryDuplicateCheckerTest {
public class WxMsgIdMemoryDuplicateCheckerTest {

public void test() throws InterruptedException {
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) {

+ 9
- 9
weixin-java-common/src/test/resources/testng.xml Просмотреть файл

@@ -1,13 +1,13 @@
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<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>

Загрузка…
Отмена
Сохранить