应用场景:
该配置类可用于会员邀请码,时效性储存优惠券信息,时效性试用期功能,限时分享码活动推广等场景
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import org.springframework.stereotype.Component;
@Component
public class ShareCodeConfig {
private Map<String, String> shareCodes = new HashMap<>();
// 生成一个新的分享码,并设置有效时间
public String generateShareCode(String information) {
String shareCode = generateUniqueShareCode();
shareCodes.put(shareCode, information);
// 设置分享码有效时间(这里设置为10分钟)
final long expirationTimeInMillis = System.currentTimeMillis() + 10 * 60 * 1000;
// 定时任务,在有效时间过后移除分享码
Thread removeTask = new Thread(() -> {
try {
Thread.sleep(expirationTimeInMillis - System.currentTimeMillis());
shareCodes.remove(shareCode);
} catch (Inte