请给一个基于java,防止数据短时间内重复提交的代码
时间: 2024-05-08 16:18:16 浏览: 80
基于Java实现小型秒杀项目【100013004】
以下是一个基于Java的防止数据短时间内重复提交的示例代码:
```
import java.util.HashMap;
import java.util.Map;
public class DuplicateSubmissionChecker {
private static Map<String, Long> previousRequests = new HashMap<>();
public static boolean isDuplicate(String requestId, long requestIntervalInMillis) {
long currentTimeMillis = System.currentTimeMillis();
if (previousRequests.containsKey(requestId)) {
long previousRequestTimeInMillis = previousRequests.get(requestId);
long elapsedTimeInMillis = currentTimeMillis - previousRequestTimeInMillis;
if (elapsedTimeInMillis < requestIntervalInMillis) {
return true;
}
}
previousRequests.put(requestId, currentTimeMillis);
return false;
}
}
```
使用方法:
```
if (DuplicateSubmissionChecker.isDuplicate(requestId, 5000)) {
// 短时间内重复提交了
} else {
// 第一次提交或上一次提交时间已经超过5000毫秒了
}
```
在上面的示例代码中,我们使用一个HashMap来保存之前的请求ID和请求时间。在检查请求是否是重复请求时,我们首先从Map中获取之前的请求时间,然后计算当前时间与之前的请求时间之间的时间间隔。如果时间间隔小于指定的请求间隔时间,则认为是重复请求。否则,我们将请求ID和当前时间添加到Map中,并返回false。
阅读全文