Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
PubTools-tools
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liuxingyu
PubTools-tools
Commits
de77267c
Commit
de77267c
authored
Aug 09, 2023
by
liuxingyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
首次提交
parent
129ec0f1
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
132 additions
and
19 deletions
+132
-19
pom.xml
pom.xml
+1
-1
RedissonLock.java
...in/java/com/mushiny/pubTools/annotation/RedissonLock.java
+2
-2
RedissonLockAspect.java
.../java/com/mushiny/pubTools/aspect/RedissonLockAspect.java
+5
-5
RedissonManager.java
...ain/java/com/mushiny/pubTools/config/RedissonManager.java
+1
-1
PingApiForTestContraller.java
...mushiny/pubTools/controller/PingApiForTestContraller.java
+3
-3
LockType.java
src/main/java/com/mushiny/pubTools/enums/LockType.java
+1
-1
RedissonErrorCode.java
...ava/com/mushiny/pubTools/execption/RedissonErrorCode.java
+1
-1
RedissonException.java
...ava/com/mushiny/pubTools/execption/RedissonException.java
+1
-1
RedissonLockUtil.java
...ain/java/com/mushiny/pubTools/utils/RedissonLockUtil.java
+3
-3
SnowFlakeUtil.java
src/main/java/com/mushiny/pubTools/utils/SnowFlakeUtil.java
+113
-0
MwmsRedissonApplicationTests.java
...va/com/mushiny/pubTools/MwmsRedissonApplicationTests.java
+1
-1
No files found.
pom.xml
View file @
de77267c
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
<version>
2.7.8
</version>
<version>
2.7.8
</version>
</parent>
</parent>
<groupId>
com.mushiny
</groupId>
<groupId>
com.mushiny
</groupId>
<artifactId>
redisson
</artifactId>
<artifactId>
pubTools
</artifactId>
<version>
1.1.7-RELEASE
</version>
<version>
1.1.7-RELEASE
</version>
<packaging>
jar
</packaging>
<packaging>
jar
</packaging>
<properties>
<properties>
...
...
src/main/java/com/mushiny/
redisson
/annotation/RedissonLock.java
→
src/main/java/com/mushiny/
pubTools
/annotation/RedissonLock.java
View file @
de77267c
...
@@ -6,9 +6,9 @@
...
@@ -6,9 +6,9 @@
* 版权所有,侵权必究!
* 版权所有,侵权必究!
*/
*/
package
com
.
mushiny
.
redisson
.
annotation
;
package
com
.
mushiny
.
pubTools
.
annotation
;
import
com.mushiny.
redisson
.enums.LockType
;
import
com.mushiny.
pubTools
.enums.LockType
;
import
java.lang.annotation.*
;
import
java.lang.annotation.*
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
...
...
src/main/java/com/mushiny/
redisson
/aspect/RedissonLockAspect.java
→
src/main/java/com/mushiny/
pubTools
/aspect/RedissonLockAspect.java
View file @
de77267c
package
com
.
mushiny
.
redisson
.
aspect
;
package
com
.
mushiny
.
pubTools
.
aspect
;
import
com.mushiny.
redisson
.annotation.RedissonLock
;
import
com.mushiny.
pubTools
.annotation.RedissonLock
;
import
com.mushiny.
redisson
.execption.RedissonErrorCode
;
import
com.mushiny.
pubTools
.execption.RedissonErrorCode
;
import
com.mushiny.
redisson
.execption.RedissonException
;
import
com.mushiny.
pubTools
.execption.RedissonException
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.Signature
;
import
org.aspectj.lang.Signature
;
...
@@ -35,7 +35,7 @@ public class RedissonLockAspect {
...
@@ -35,7 +35,7 @@ public class RedissonLockAspect {
RedissonClient
redissonClient
;
RedissonClient
redissonClient
;
@Pointcut
(
"@annotation(com.mushiny.
redisson
.annotation.RedissonLock)"
)
@Pointcut
(
"@annotation(com.mushiny.
pubTools
.annotation.RedissonLock)"
)
public
void
pointCut
()
{
public
void
pointCut
()
{
}
}
...
...
src/main/java/com/mushiny/
redisson
/config/RedissonManager.java
→
src/main/java/com/mushiny/
pubTools
/config/RedissonManager.java
View file @
de77267c
package
com
.
mushiny
.
redisson
.
config
;
package
com
.
mushiny
.
pubTools
.
config
;
import
org.redisson.Redisson
;
import
org.redisson.Redisson
;
import
org.redisson.api.RedissonClient
;
import
org.redisson.api.RedissonClient
;
...
...
src/main/java/com/mushiny/
redisson
/controller/PingApiForTestContraller.java
→
src/main/java/com/mushiny/
pubTools
/controller/PingApiForTestContraller.java
View file @
de77267c
package
com
.
mushiny
.
redisson
.
controller
;
package
com
.
mushiny
.
pubTools
.
controller
;
import
com.mushiny.
redisson
.enums.LockType
;
import
com.mushiny.
pubTools
.enums.LockType
;
import
com.mushiny.
redisson
.utils.RedissonLockUtil
;
import
com.mushiny.
pubTools
.utils.RedissonLockUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
...
...
src/main/java/com/mushiny/
redisson
/enums/LockType.java
→
src/main/java/com/mushiny/
pubTools
/enums/LockType.java
View file @
de77267c
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
* 版权所有,侵权必究!
* 版权所有,侵权必究!
*/
*/
package
com
.
mushiny
.
redisson
.
enums
;
package
com
.
mushiny
.
pubTools
.
enums
;
/**
/**
* 行政区域 级别枚举
* 行政区域 级别枚举
...
...
src/main/java/com/mushiny/
redisson
/execption/RedissonErrorCode.java
→
src/main/java/com/mushiny/
pubTools
/execption/RedissonErrorCode.java
View file @
de77267c
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
* 版权所有,侵权必究!
* 版权所有,侵权必究!
*/
*/
package
com
.
mushiny
.
redisson
.
execption
;
package
com
.
mushiny
.
pubTools
.
execption
;
/**
/**
* 错误编码,由5位数字组成,前2位为模块编码,后3位为业务编码
* 错误编码,由5位数字组成,前2位为模块编码,后3位为业务编码
...
...
src/main/java/com/mushiny/
redisson
/execption/RedissonException.java
→
src/main/java/com/mushiny/
pubTools
/execption/RedissonException.java
View file @
de77267c
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
* 版权所有,侵权必究!
* 版权所有,侵权必究!
*/
*/
package
com
.
mushiny
.
redisson
.
execption
;
package
com
.
mushiny
.
pubTools
.
execption
;
/**
/**
...
...
src/main/java/com/mushiny/
redisson
/utils/RedissonLockUtil.java
→
src/main/java/com/mushiny/
pubTools
/utils/RedissonLockUtil.java
View file @
de77267c
package
com
.
mushiny
.
redisson
.
utils
;
package
com
.
mushiny
.
pubTools
.
utils
;
import
com.mushiny.
redisson
.execption.RedissonErrorCode
;
import
com.mushiny.
pubTools
.execption.RedissonErrorCode
;
import
com.mushiny.
redisson
.execption.RedissonException
;
import
com.mushiny.
pubTools
.execption.RedissonException
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RLock
;
import
org.redisson.api.RedissonClient
;
import
org.redisson.api.RedissonClient
;
...
...
src/main/java/com/mushiny/pubTools/utils/SnowFlakeUtil.java
0 → 100644
View file @
de77267c
package
com
.
mushiny
.
pubTools
.
utils
;
/**
* 描述信息
*
* @auther lxy
* @since 2023/8/9 13:57
*/
public
class
SnowFlakeUtil
{
/**
* 起始时间戳,从2021-12-01开始生成
*/
private
final
static
long
START_STAMP
=
1638288000000L
;
/**
* 序列号占用的位数 12
*/
private
final
static
long
SEQUENCE_BIT
=
12
;
/**
* 机器标识占用的位数
*/
private
final
static
long
MACHINE_BIT
=
10
;
/**
* 机器数量最大值
*/
private
final
static
long
MAX_MACHINE_NUM
=
~(-
1L
<<
MACHINE_BIT
);
/**
* 序列号最大值
*/
private
final
static
long
MAX_SEQUENCE
=
~(-
1L
<<
SEQUENCE_BIT
);
/**
* 每一部分向左的位移
*/
private
final
static
long
MACHINE_LEFT
=
SEQUENCE_BIT
;
private
final
static
long
TIMESTAMP_LEFT
=
SEQUENCE_BIT
+
MACHINE_BIT
;
/**
* 机器标识
*/
private
long
machineId
;
/**
* 序列号
*/
private
long
sequence
=
0L
;
/**
* 上一次时间戳
*/
private
long
lastStamp
=
-
1L
;
/**
* 构造方法
*
* @param machineId 机器ID
*/
public
SnowFlakeUtil
(
long
machineId
)
{
if
(
machineId
>
MAX_MACHINE_NUM
||
machineId
<
0
)
{
throw
new
RuntimeException
(
"机器超过最大数量"
);
}
this
.
machineId
=
machineId
;
}
/**
* 产生下一个ID
*/
public
synchronized
long
nextId
()
{
long
currStamp
=
getNewStamp
();
if
(
currStamp
<
lastStamp
)
{
throw
new
RuntimeException
(
"时钟后移,拒绝生成ID!"
);
}
if
(
currStamp
==
lastStamp
)
{
// 相同毫秒内,序列号自增
sequence
=
(
sequence
+
1
)
&
MAX_SEQUENCE
;
// 同一毫秒的序列数已经达到最大
if
(
sequence
==
0L
)
{
currStamp
=
getNextMill
();
}
}
else
{
// 不同毫秒内,序列号置为0
sequence
=
0L
;
}
lastStamp
=
currStamp
;
return
(
currStamp
-
START_STAMP
)
<<
TIMESTAMP_LEFT
// 时间戳部分
|
machineId
<<
MACHINE_LEFT
// 机器标识部分
|
sequence
;
// 序列号部分
}
private
long
getNextMill
()
{
long
mill
=
getNewStamp
();
while
(
mill
<=
lastStamp
)
{
mill
=
getNewStamp
();
}
return
mill
;
}
private
long
getNewStamp
()
{
return
System
.
currentTimeMillis
();
}
public
static
void
main
(
String
[]
args
)
{
// 192.168.3.104 192.168.3.221测试生成12位id
SnowFlakeUtil
snowFlake1
=
new
SnowFlakeUtil
(
104
);
System
.
out
.
println
(
snowFlake1
.
nextId
());
SnowFlakeUtil
snowFlake2
=
new
SnowFlakeUtil
(
221
);
System
.
out
.
println
(
snowFlake2
.
nextId
());
}
}
src/test/java/com/mushiny/
redisson
/MwmsRedissonApplicationTests.java
→
src/test/java/com/mushiny/
pubTools
/MwmsRedissonApplicationTests.java
View file @
de77267c
package
com
.
mushiny
.
redisson
;
package
com
.
mushiny
.
pubTools
;
import
org.junit.jupiter.api.Test
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.context.SpringBootTest
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment