me.chanjar.weixin.common.api

## 类 WxMessageInMemoryDuplicateChecker

- java.lang.Object
- - me.chanjar.weixin.common.api.WxMessageInMemoryDuplicateChecker

所有已实现的接口:
  WxMessageDuplicateChecker

    public class WxMessageInMemoryDuplicateChecker
    extends Object
    implements WxMessageDuplicateChecker

     默认消息重复检查器
     将每个消息id保存在内存里，每隔5秒清理已经过期的消息id，每个消息id的过期时间是15秒

### 构造器概要

构造器
构造器和说明
`WxMessageInMemoryDuplicateChecker()` WxMsgIdInMemoryDuplicateChecker构造函数 一个消息ID在内存的过期时间：15秒 每隔多少周期检查消息ID是否过期：5秒
`WxMessageInMemoryDuplicateChecker(Long timeToLive, Long clearPeriod)` WxMsgIdInMemoryDuplicateChecker构造函数

### 方法概要

方法
`protected void` `checkBackgroundProcessStarted()`
`boolean` `isDuplicate(String messageId)` 公众号的排重方式 普通消息：关于重试的消息排重，推荐使用msgid排重。

### 从类继承的方法 java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### 构造器详细资料

#### WxMessageInMemoryDuplicateChecker

    public WxMessageInMemoryDuplicateChecker()

WxMsgIdInMemoryDuplicateChecker构造函数

     一个消息ID在内存的过期时间：15秒
     每隔多少周期检查消息ID是否过期：5秒

#### WxMessageInMemoryDuplicateChecker

    public WxMessageInMemoryDuplicateChecker(Long timeToLive,
                                     Long clearPeriod)

WxMsgIdInMemoryDuplicateChecker构造函数

参数:
  `timeToLive` - 一个消息ID在内存的过期时间：毫秒
  `clearPeriod` - 每隔多少周期检查消息ID是否过期：毫秒

### 方法详细资料

#### checkBackgroundProcessStarted

    protected void checkBackgroundProcessStarted()

#### isDuplicate

    public boolean isDuplicate(String messageId)

从接口复制的说明: `WxMessageDuplicateChecker`

## 公众号的排重方式

普通消息：关于重试的消息排重，推荐使用msgid排重。文档参考。

事件消息：关于重试的消息排重，推荐使用FromUserName + CreateTime 排重。文档参考

## 企业号的排重方式

官方文档完全没有写，参照公众号的方式排重。

或者可以采取更简单的方式，如果有MsgId就用MsgId排重，如果没有就用FromUserName+CreateTime排重

指定者:
  `isDuplicate` 在接口中 `WxMessageDuplicateChecker`
参数:
  `messageId` - messageId需要根据上面讲的方式构造
返回:
  如果是重复消息，返回true，否则返回false