成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

基于Redisson的RAtomicLong實現全局唯一工單號生成器

開發 開發工具
通過Redisson的RAtomicLong,我們成功實現了一個簡單而強大的全局唯一工單號生成器。該生成器保證了唯一性,且在分布式環境中表現出色。在實際應用中,可以根據業務需求進行調整和擴展,以滿足更復雜的場景。

最近幾年,我一直從事的是運營平臺業務開發。每天,我們都需要處理大量的工單配置工作。為了生成工單號,我們建立了一張專用的數據庫表,用于記錄和生成工單號。每次創建工單時,我們會查詢這張表,根據年份字段、月份字段和模塊編碼找到最大的自增序列號。隨后,我們將自增序列號加一,與模塊編碼、年月序列號拼接以生成工單號,并將相關信息寫入表中。這種方法一直使用得很順利,因為工單配置的量并不是特別大,一直都沒有出現問題。然而,最近我們為第三方提供了一個工單推送的接口,他們一次性推送了大量的工單,這導致不僅生成了許多重復工單號,而且還引起了接口性能方面的問題。因此,我們決定對工單號生成方式進行改進,本文我們將介紹下我們新的生成方法。

實現思路

這次我們采用了 Redisson 的 RAtomicLong 來生成一個以固定字符加上年月為鍵的自增數。隨后,將自增數轉換為36進制字符串,以年月和36進制字符串拼接形成全局唯一的工單號。

代碼實現

SerialIdService.java

@Service
@Slf4j
public class SerialIdService {

    private static final String ID_KEY = "xiuji:";
    private static final int BASE_36 = 36;

    private static final Integer SEQUENCE_LENGTH = 5;
    @Resource
    private RedissonClient redissonClient;

    public String workSerialId() {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyMM");
        String dateStr = LocalDate.now().format(formatter);
        //使用了Redisson的AtomicLong對象生成唯一序列號
        RAtomicLong atomicLong = redissonClient.getAtomicLong(ID_KEY+dateStr);
        //設置過期時間為35天
        if(atomicLong.get() == 0){
            atomicLong.expire(Duration.ofDays(35));
        }
        //將唯一序列號轉換為36進制的字符串,長度為4位,用于減少ID的長度
        String sequenceStr = Long.toString(atomicLong.incrementAndGet(), BASE_36).toUpperCase();
        //36進制的序列號若小于4位,則用0補齊高位
        if (sequenceStr.length() < SEQUENCE_LENGTH) {
            sequenceStr = String.format("%4s", sequenceStr).replace(' ', '0');;
        }
        String serialId = dateStr+sequenceStr;

        log.info("生成的工單號:{}",dateStr+sequenceStr);
        return dateStr+sequenceStr;
    }

}

生成的工單號示例:

240121AXT6
240121AXT7
240121AXT8
240121AXT9
240121AXTA
240121AXTB
240121AXTC
240121AXTD
240121AXTE
240121AXTF
240121AXTG
240121AXTH
240121AXTI
240121AXTJ

總結

通過Redisson的RAtomicLong,我們成功實現了一個簡單而強大的全局唯一工單號生成器。該生成器保證了唯一性,且在分布式環境中表現出色。在實際應用中,可以根據業務需求進行調整和擴展,以滿足更復雜的場景。

責任編輯:武曉燕 來源: 修己xj
相關推薦

2016-01-08 10:55:31

PHP莫斯電碼生成器

2016-12-21 10:55:55

PHP莫斯電碼生成器

2022-12-29 08:43:54

IDredis

2024-10-29 08:30:31

2024-10-14 12:05:56

2021-07-01 06:58:12

高并發訂單號SCM

2017-03-20 17:49:21

Java Web模板代碼

2017-09-06 09:26:03

Python生成器協程

2022-03-03 08:30:41

GeneratorES6函數

2020-09-08 11:21:48

SQL生成器跨庫

2015-08-25 11:07:58

2017-07-01 16:02:39

分布式ID生成器

2025-01-23 08:36:27

CSS開發工具

2011-12-23 13:42:05

JavaScript

2010-09-07 16:31:17

SQL語句insert

2021-04-22 21:15:38

Generator函數生成器

2024-09-04 08:55:56

2022-07-25 10:27:36

背景生成器工具前端

2023-02-07 16:11:41

2023-05-04 16:24:10

人工智能圖像生成器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产情侣 | 日韩高清一区 | 精品国产一区二区三区久久久蜜月 | 国产精品视频在线播放 | 久久久精品一区二区 | 日韩影院在线观看 | 欧美日韩手机在线观看 | 91伊人| 韩日有码 | 亚洲精品二区 | 成人欧美一区二区三区在线播放 | 亚洲精品一区在线观看 | 91精品久久久久久久久久入口 | www久久久 | 999精品视频 | 成人av在线网站 | 性一区| 91综合在线观看 | 在线免费av观看 | 99tv| 欧美色性 | 亚洲二区在线 | 一区二区伦理电影 | 卡通动漫第一页 | 国产欧美日韩一区 | 国产三级 | 欧美日韩国产在线观看 | 亚洲精品中文字幕在线 | 亚洲精品美女视频 | 中文字幕1区 | 日本免费在线 | h视频在线免费观看 | 亚洲国产精品一区 | 日韩一及片| 久草综合在线视频 | 天天夜天天操 | 一区二区伦理电影 | 国产第一页在线观看 | 国产成人精品一区二区三区视频 | 九九免费视频 | 毛片免费视频 |