AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

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

來源: 責編: 時間:2024-01-26 09:01:36 226觀看
導讀最近幾年,我一直從事的是運營平臺業務開發。每天,我們都需要處理大量的工單配置工作。為了生成工單號,我們建立了一張專用的數據庫表,用于記錄和生成工單號。每次創建工單時,我們會查詢這張表,根據年份字段、月份字段和模塊

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

實現思路

這次我們采用了 Redisson 的 RAtomicLong 來生成一個以固定字符加上年月為鍵的自增數。隨后,將自增數轉換為36進制字符串,以年月和36進制字符串拼接形成全局唯一的工單號。EyC28資訊網——每日最新資訊28at.com

代碼實現

SerialIdService.javaEyC28資訊網——每日最新資訊28at.com

@Service@Slf4jpublic 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;    }}

生成的工單號示例:EyC28資訊網——每日最新資訊28at.com

240121AXT6240121AXT7240121AXT8240121AXT9240121AXTA240121AXTB240121AXTC240121AXTD240121AXTE240121AXTF240121AXTG240121AXTH240121AXTI240121AXTJ

總結

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

本文鏈接:http://www.tebozhan.com/showinfo-26-68323-0.html基于Redisson的RAtomicLong實現全局唯一工單號生成器

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: JDK17 與 JDK11 特性差異淺談

下一篇: Dalvik與ART的架構差異,你學會了嗎?

標簽:
  • 熱門焦點
  • 小米官宣:2023年上半年出貨量中國第一!

    今日早間,小米電視官方微博帶來消息,稱2023年小米電視上半年出貨量達到了中國第一,同時還表示小米電視的巨屏風暴即將開始。“公布一個好消息2023年#小米電視上半年出貨量中國
  • 石頭自清潔掃拖機器人G10S評測:多年黑科技集大成之作 懶人終極福音

    科技圈經常能看到一個詞叫“縫合怪”,用來形容那些把好多功能或者外觀結合在一起的產品,通常這樣的詞是貶義詞,但如果真的是產品縫合的好、縫合的實用的話,那它就成了中性詞,今
  • 服務存儲設計模式:Cache-Aside模式

    Cache-Aside模式一種常用的緩存方式,通常是把數據從主存儲加載到KV緩存中,加速后續的訪問。在存在重復度的場景,Cache-Aside可以提升服務性能,降低底層存儲的壓力,缺點是緩存和底
  • Flowable工作流引擎的科普與實踐

    一.引言當我們在日常工作和業務中需要進行各種審批流程時,可能會面臨一系列技術和業務上的挑戰。手動處理這些審批流程可能會導致開發成本的增加以及業務復雜度的上升。在這
  • 在線圖片編輯器,支持PSD解析、AI摳圖等

    自從我上次分享一個人開發仿造稿定設計的圖片編輯器到現在,不知不覺已過去一年時間了,期間我經歷了裁員失業、面試找工作碰壁,寒冬下一直沒有很好地履行計劃.....這些就放在日
  • JVM優化:實戰OutOfMemoryError異常

    一、Java堆溢出堆內存中主要存放對象、數組等,只要不斷地創建這些對象,并且保證 GC Roots 到對象之間有可達路徑來避免垃 圾收集回收機制清除這些對象,當這些對象所占空間超過
  • 猿輔導與新東方的兩種“歸途”

    作者|卓心月 出品|零態LT(ID:LingTai_LT)如何成為一家偉大企業?答案一定是對&ldquo;勢&rdquo;的把握,這其中最關鍵的當屬對企業戰略的制定,且能夠站在未來看現在,即使這其中的
  • 三星電子Q2營收60萬億韓元 存儲業務營收同比仍下滑超過50%

    7月27日消息,據外媒報道,從三星電子所發布的財報來看,他們主要利潤來源的存儲芯片業務在今年二季度仍不樂觀,營收同比仍在大幅下滑,所在的設備解決方案
  • 自研Exynos回歸!三星Galaxy S24系列將提供Exynos和驍龍雙版本

    年初,全新的三星Galaxy S23系列發布,包含Galaxy S23、Galaxy S23+和Galaxy S23 Ultra三個版本,全系搭載超頻版驍龍8 Gen 2,雖同樣采用臺積電4nm工藝制
Top