提出問題
如何使用jAVA產生流水號,同時支援可配置和高並發???
解決問題
假設你們專案已經整合快取技術
假如你有一定的Java基礎
下面的程式碼實現的是一個支援高並發,可配置,效率高的流水號產生器,可同時為一個專案的多個模組使用,流水號支援緩存,即每次會預先產生一定數量的流水號存放在快取中,需要的時候,優先到快取中去,快取中的序號使用完之後,重新產生一定數量的流水號放到快取中,如此循環,提高效率…
同時,該流水號生成器是線程安全的,使用線程鎖進行保護,已經真正的投入到項目中使用……
數據庫表設計
[code]CREATE TABLE sys_serial_number2 ( "id" varchar(32) COLLATE "default" NOT NULL, "module_name" varchar(50) COLLATE "default", "module_code" varchar(50) COLLATE "default", "config_templet" varchar(50) COLLATE "default", "max_serial" varchar(32) COLLATE "default", "pre_max_num" varchar(32) COLLATE "default", "is_auto_increment" char(1) COLLATE "default" )
[code]module_name:模块名称 module_code:模块编码 config_templet:当前模块 使用的序列号模板 max_serial:存放当前序列号的值 pre_max_num:预生成序列号存放到缓存的个数 is_auto_increment:是否自动增长模式,0:否 1:是
,這時配置模板為CX0000000產生的序號為:CX00000001,CX0000002,CX00000003
資料庫設定說明:如需要項目模組的項目編號,則需要在資料庫表sys_serial_n
資料庫設定說明:如需要項目模組的項目編號,則需要在資料庫表sys_serial_n
Service設計機之流水號產生器的內容,更多相關內容請關注PHP中文網(www.php.cn)!