/**
* 生成任务时,任务编号的规则是“XJRW-”+nowday(格式yyyyMMdd)+“-”+(当天生成任务数量+1)左补零4位
*
* @author hlliut 2021年10月12日
*/
public class TaskNumberUtil { private static String _KEY = "XJRW-";
public static String generateTaskNumber() {
String key = _KEY + DateUtil.dateToString(new Date(), DateUtil.ISO_DATE_FORMAT);
long value = getNumber(key);
return String.format("%s-%s", key, String.format("%04d", value));
} private static long getNumber(String key) {
if (!RedisUtils.hasKey(key)) {
RedisUtils.setIfAbsent(key, 0, 25, TimeUnit.HOURS);// 25小时过期
}
long value = RedisUtils.incr(key);// 自增
if (value > 9999) {
RedisUtils.set(key, 0);
return getNumber(key);// 重新计数
}
return value;
}
}
java redis 先进先出 java redis incr
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章